<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">

html {
    height:100%; /* fix height to 100% for IE */
    width: 100%;
    max-height:100%; /* fix height for other browsers */
    padding:0; /*remove padding */
    margin:0; /* remove margins */
    border:0; /* remove borders */
}

.ptitle h2 {
    text-align: center
}

.stitle {
    font-size: 100%;
    font-weight: bold;
    text-align: left;
}

.headcontent {
    font-size: 90%;
    max-height: 200px;
}

.toc {
    display: inline-block;
}

.summary {
    margin:0;
    padding:0;
    background:transparent;
    height:100%;
    margin-right:100px;
    padding-right:100px;
    padding-top:10px;
    display: inline-block;
    float:right;
}

.toc ol {
    margin:0;
    padding:0;
    background:transparent;
    height:100%;
    margin-left:50px;
    padding-left:10px;
    padding-top:10px;
}

.toc ol li a { padding-left:20px;  color: #0000EE;; text-decoration:none;}
.toc ol li a:hover { color:#BABABA;  }
a:hover { color:#BABABA;  }
.diagrams { display: inline-block;}

.rgtable td { width:70px; text-align:center;}


td {
  font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New, monospace;
}

.pie-container {
box-sizing: border-box;
width: 850px;
height: 450px;
padding: 20px 15px 15px 15px;
margin: 15px auto 30px auto;
border: 1px solid #ddd;
background: #fff;
background: linear-gradient(#f6f6f6 0, #fff 50px);
background: -o-linear-gradient(#f6f6f6 0, #fff 50px);
background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);
background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);
background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);
box-shadow: 0 3px 10px rgba(0,0,0,0.15);
-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);
}

.pie-placeholder {
width: 100%;
height: 100%;
font-size: 14px;
line-height: 1.2em;
}

.metricstable,table,td,th
{
border-style:    none;
border-color:    white;
border-collapse: collapse;
border-width:    1px;
padding: 0px;
}

.padded { padding: 0 10px; }

.paddedleft { padding: 0 10px; text-align: left; }
.paddedright { padding: 0 10px; text-align: right; }

.lightheader { background-color: lightgreen; }
.boldheader  { background-color: lime; }

.docTable,table,th
{
border-style:   solid;
border-color:   black;
border-width:   1px;
background:     lightgray;
}
.docTable,table,td
{
border-style:   solid;
border-color:   black;
border-width:   1px;
background:     white;
}
.docCellGreen
{
border-style:   solid;
border-color:   black;
border-width:   1px;
background:     green;
}
.docCellRed
{
border-style:   solid;
border-color:   black;
border-width:   1px;
background:     red;
}
.docCellOrange
{
border-style:   solid;
border-color:   black;
border-width:   1px;
background:     orange;
}
.docCellBlue
{
border-style:   solid;
border-color:   black;
border-width:   1px;
background:     DeepSkyBlue;
}
</style>
<title>Helix QAC GEP/GCS/GRP Report</title>
</head>
<body>
  <div id="head">
  <div class="ptitle"><h2>Helix QAC GEP/GCS/GRP Report for CERTCCM</h2></div>
  <div class="stitle"><h4><i>Note: This report is generated using Helix QAC version: 2020.2, property of Programming Research Limited, a Perforce company.</i></h4></div>
  <div class="stitle">Project &nbsp;&nbsp;: nucleo/Firmware/nucleo/PRQA/RFAL-ST25R3916<br/>Status at: 31 May, 2024 at 12:53:16<br/><i>Report script last update: July 6, 2021</i></div>
  <div class="headcontent">
    <div class="toc">
      <ol>
        <li><a href="#GEP">GEP - Guideline Enforcement Plan</a></li>
          <ol>
            <li><a href="#Tools">Tools version</a></li>
            <li><a href="#Configuration">Configuration files</a></li>
            <li><a href="#Assistance">Assistance/Enforcement</a></li>
          </ol>
        <li><a href="#GRP">GRP - Guideline Recategorization Plan</a></li>
        <li><a href="#GCS">GCS - Guideline Compliance Summary</a></li>
        <li><a href="#Permits">Deviation Permits</a></li>
        <li><a href="#Records">Deviation Records</a></li>
          <ol>
            <li><a href="#SuppressionsByFile">Suppressions by File</a></li>
            <li><a href="#SuppressionsByGroup">Suppressions by Group</a></li>
            <li><a href="#RedundantSuppressions">Redundant Suppressions</a></li>
            <li><a href="#ContinuousSuppressionsByFile">Continuous Suppressions by File</a></li>
            <li><a href="#FileStatus">File Status</a></li>
          </ol>
      </ol>
    </div>
  </div>
  </div>

<br>
<br>
<br>
<div id="content">
<div class="GEP">
<div class="sec"><h2><a name="GEP">GEP - Guideline Enforcement Plan</a></h2></div>
This report documents the coverage of CERT conformance. Its notation is derived from MISRA, please refer for details of the following reports (GEP, GRP, GCS, etc.) to this standard.<br>
This section targets to provide an overview of Guidelines Enforcement Plan (GEP).<br>
This document will only focus on STMicroelectronics NFC RF Abstraction Layer (RFAL).<br>
The project has been designed to comply with the standard ISO/IEC 9899:1999 ([C99]).
<br>
<br>
<h3><a name="Tools">1. Tools version</a></h3>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Component</th><th>Version</th><th>Target</th><th>Options</th></tr>
    <td>certccm</td>
    <td>1.5.0</td>
    <td>C</td>
    <td></td>
  </tr>
    <td>rcma</td>
    <td>2.3.0</td>
    <td>C_CPP</td>
    <td></td>
  </tr>
    <td>qac</td>
    <td>9.9.0</td>
    <td>C</td>
    <td><ul>-d : __schedule_barrier=_ignore_semi</ul>
<ul>-namelength : 63</ul>
<ul>-prodoption : df::function_timeout=20000</ul>
</td>
  </tr>
</table></center>
<h3><a name="Configuration">2. Configuration</a></h3>
This section targets to provide the main configuration options used for CERT compliance.<br>
The project complies to [C99],<br>
the variables length has been consequently set to a dedicated value (cf 'namelength' option in table above).
<br>
<br>
<b>Repository/components:</b><br>
  <ul>
    <li>MCU target:</li>
      <ul>RFAL-ST25R3916</ul><br>
    <li>RFAL informations:</li>
      <ul>Path: rfal</ul>
      <ul>Version: v3.0.0</ul>
          <br>    <li>Project repositories SHA1:</li>
      <ul><b>common</b>: bd63699</ul>
      <ul><b>nucleo</b>: afd8cc1</ul>
      <ul><b>rfal</b>: 5b33cb9</ul>
  <br>
  </ul>
<h3><a name="Assistance">3. Assistance/Enforcement</a></h3>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Guideline</th><th>Category</th><th>Description</th><th>Assistance/Enforcement Sub Rules</th></tr>
  <tr> 
    <td width=2%>ARR02</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Explicitly specify array bounds, even if implicitly defined by an initializer</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0678</td>
    <td width=92%>[u] Array element is array of unknown size. Arrays cannot be constructed from incomplete types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0688</td>
    <td width=92%>Array size determined by number of initializers which include concatenated string literals.</td>
  </tr>
  <tr>
    <td width=8%>qac-3674</td>
    <td width=92%>Array size defined implicitly by the number of initializers.</td>
  </tr>
  <tr>
    <td width=8%>qac-3684</td>
    <td width=92%>Array declared with unknown size.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ARR30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not form or use out-of-bounds pointers or array subscripts</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2820</td>
    <td width=92%>Constant: Arithmetic operation on NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2821</td>
    <td width=92%>Definite: Arithmetic operation on NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2822</td>
    <td width=92%>Apparent: Arithmetic operation on NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2823</td>
    <td width=92%>Suspicious: Arithmetic operation on NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2840</td>
    <td width=92%>Constant: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2841</td>
    <td width=92%>Definite: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2842</td>
    <td width=92%>Apparent: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2843</td>
    <td width=92%>Suspicious: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2930</td>
    <td width=92%>Constant: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2931</td>
    <td width=92%>Definite: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2932</td>
    <td width=92%>Apparent: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2933</td>
    <td width=92%>Suspicious: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2935</td>
    <td width=92%>Constant: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2936</td>
    <td width=92%>Definite: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2937</td>
    <td width=92%>Apparent: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2938</td>
    <td width=92%>Suspicious: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2950</td>
    <td width=92%>Constant: Negative value used in array subscript or pointer arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2951</td>
    <td width=92%>Definite: Negative value used in array subscript or pointer arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2952</td>
    <td width=92%>Apparent: Negative value used in array subscript or pointer arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2953</td>
    <td width=92%>Suspicious: Negative value used in array subscript or pointer arithmetic operation.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ARR32</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure size arguments for variable length arrays are in a valid range</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1051</td>
    <td width=92%>[C99] A variable length array has been declared.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ARR36</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not subtract or compare two pointers that do not refer to the same array</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0487</td>
    <td width=92%>[C] If two pointers are subtracted, they must be pointers that address compatible types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0513</td>
    <td width=92%>[C] Relational operator used to compare pointers to incompatible types.</td>
  </tr>
  <tr>
    <td width=8%>qac-2668</td>
    <td width=92%>Subtraction of a pointer to an array and a pointer to a non-array.</td>
  </tr>
  <tr>
    <td width=8%>qac-2669</td>
    <td width=92%>Comparison of a pointer to an array and a pointer to a non-array.</td>
  </tr>
  <tr>
    <td width=8%>qac-2761</td>
    <td width=92%>Definite: Subtracting pointers that address different objects.</td>
  </tr>
  <tr>
    <td width=8%>qac-2762</td>
    <td width=92%>Apparent: Subtracting pointers that address different objects.</td>
  </tr>
  <tr>
    <td width=8%>qac-2763</td>
    <td width=92%>Suspicious: Subtracting pointers that address different objects.</td>
  </tr>
  <tr>
    <td width=8%>qac-2766</td>
    <td width=92%>Definite: Subtracting pointers that address different members of the same object.</td>
  </tr>
  <tr>
    <td width=8%>qac-2767</td>
    <td width=92%>Apparent: Subtracting pointers that address different members of the same object.</td>
  </tr>
  <tr>
    <td width=8%>qac-2768</td>
    <td width=92%>Suspicious: Subtracting pointers that address different members of the same object.</td>
  </tr>
  <tr>
    <td width=8%>qac-2771</td>
    <td width=92%>Definite: Comparing pointers that address different objects.</td>
  </tr>
  <tr>
    <td width=8%>qac-2772</td>
    <td width=92%>Apparent: Comparing pointers that address different objects.</td>
  </tr>
  <tr>
    <td width=8%>qac-2773</td>
    <td width=92%>Suspicious: Comparing pointers that address different objects.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ARR37</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not add or subtract an integer to a pointer to a non-array object</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2930</td>
    <td width=92%>Constant: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2931</td>
    <td width=92%>Definite: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2932</td>
    <td width=92%>Apparent: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2933</td>
    <td width=92%>Suspicious: Computing an invalid pointer value.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ARR38</td>
    <td width=2%>Rule</td>
    <td width=40%>Guarantee that library functions do not form invalid pointers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2840</td>
    <td width=92%>Constant: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2841</td>
    <td width=92%>Definite: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2842</td>
    <td width=92%>Apparent: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2843</td>
    <td width=92%>Suspicious: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2845</td>
    <td width=92%>Constant: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2846</td>
    <td width=92%>Definite: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2847</td>
    <td width=92%>Apparent: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2848</td>
    <td width=92%>Suspicious: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2935</td>
    <td width=92%>Constant: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2936</td>
    <td width=92%>Definite: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2937</td>
    <td width=92%>Apparent: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2938</td>
    <td width=92%>Suspicious: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-4880</td>
    <td width=92%>Constant: Pointed to object has smaller size than the size_t argument.</td>
  </tr>
  <tr>
    <td width=8%>qac-4881</td>
    <td width=92%>Definite: Pointed to object has smaller size than the size_t argument.</td>
  </tr>
  <tr>
    <td width=8%>qac-4882</td>
    <td width=92%>Apparent: Pointed to object has smaller size than the size_t argument.</td>
  </tr>
  <tr>
    <td width=8%>qac-4883</td>
    <td width=92%>Suspicious: Pointed to object has smaller size than the size_t argument.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ARR39</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not add or subtract a scaled integer to a pointer</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4955</td>
    <td width=92%>Constant: Adding/subtracting a scaled integer to a pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-4956</td>
    <td width=92%>Definite: Adding/subtracting a scaled integer to a pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-4957</td>
    <td width=92%>Apparent: Adding/subtracting a scaled integer to a pointer.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON30</td>
    <td width=2%>Rule</td>
    <td width=40%>Clean up thread-specific storage</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1780</td>
    <td width=92%>Memory associated with the TLS key '%1s' is deallocated more than once.</td>
  </tr>
  <tr>
    <td width=8%>mta-1781</td>
    <td width=92%>Memory associated with the TLS key '%1s' may be deallocated more than once.</td>
  </tr>
  <tr>
    <td width=8%>mta-1782</td>
    <td width=92%>Memory associated with the TLS key '%1s' is deallocated in a way that does not match its allocation.</td>
  </tr>
  <tr>
    <td width=8%>mta-1783</td>
    <td width=92%>Memory associated with the TLS key '%1s' is not deallocated.</td>
  </tr>
  <tr>
    <td width=8%>mta-1784</td>
    <td width=92%>The origin of the TLS key '%1s' cannot be identified. Perhaps it should have been passed as a thread parameter?</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON31</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not destroy a mutex while it is locked</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4961</td>
    <td width=92%>Definite: Attempt to destroy a mutex which is still locked</td>
  </tr>
  <tr>
    <td width=8%>qac-4962</td>
    <td width=92%>Apparent: Attempt to destroy a mutex which is still locked</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON32</td>
    <td width=2%>Rule</td>
    <td width=40%>Prevent data races when accessing bit-fields from multiple threads</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1774</td>
    <td width=92%>Definite: data race for an object '%1s' which shares its physical storage location with one or more others.</td>
  </tr>
  <tr>
    <td width=8%>mta-1775</td>
    <td width=92%>Apparent: data race for an object '%1s' which shares its physical storage location with one or more others.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON33</td>
    <td width=2%>Rule</td>
    <td width=40%>Avoid race conditions when using library functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4976</td>
    <td width=92%>Definite: Call to a non-reentrant function outside of a critical section.</td>
  </tr>
  <tr>
    <td width=8%>qac-4977</td>
    <td width=92%>Apparent: Call to a non-reentrant function outside of a critical section.</td>
  </tr>
  <tr>
    <td width=8%>certccm-5037</td>
    <td width=92%>Use of '%1s'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON34</td>
    <td width=2%>Rule</td>
    <td width=40%>Declare objects shared between threads with appropriate storage durations</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4926</td>
    <td width=92%>Definite: The lifetime of the variable passed to the thread creation function is shorter than the lifetime of the thread.</td>
  </tr>
  <tr>
    <td width=8%>qac-4927</td>
    <td width=92%>Apparent: The lifetime of the variable passed to the thread creation function is shorter than the lifetime of the thread.</td>
  </tr>
  <tr>
    <td width=8%>qac-4928</td>
    <td width=92%>Suspicious: The lifetime of the variable passed to the thread creation function is shorter than the lifetime of the thread.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON35</td>
    <td width=2%>Rule</td>
    <td width=40%>Avoid deadlock by locking in a predefined order</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1772</td>
    <td width=92%>Mutex '%1s' violates the lock hierarchy, as it is acquired before '%2s' elsewhere %3s% of the time.</td>
  </tr>
  <tr>
    <td width=8%>mta-1773</td>
    <td width=92%>Mutexes '%1s' and '%2s' are not ordered in the lock hierarchy.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON36</td>
    <td width=2%>Rule</td>
    <td width=40%>Wrap functions that can spuriously wake up in a loop</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2027</td>
    <td width=92%>This function can wake spuriously, but does not appear to be wrapped in a loop.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON37</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not call signal() in a multithreaded program</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5021</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON38</td>
    <td width=2%>Rule</td>
    <td width=40%>Preserve thread safety and liveness when using condition variables</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1778</td>
    <td width=92%>Condition variable '%1s' is signaled and used with multiple wait operations.</td>
  </tr>
  <tr>
    <td width=8%>mta-1779</td>
    <td width=92%>Condition variable '%1s' is signaled and used with a re-entered wait operation.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON39</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not join or detach a thread that was previously joined or detached</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1776</td>
    <td width=92%>Thread '%1s' is made unjoinable multiple times.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON40</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not refer to an atomic variable twice in an expression</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1114</td>
    <td width=92%>This atomic variable is referenced directly twice in the same expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-1115</td>
    <td width=92%>This atomic lvalue appears to be referenced twice in the same expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-1116</td>
    <td width=92%>This atomic variable appears to be updated non-atomically.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON41</td>
    <td width=2%>Rule</td>
    <td width=40%>Wrap functions that can fail spuriously in a loop</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2026</td>
    <td width=92%>This function can fail spuriously, but does not appear to be wrapped in a loop.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>CON43</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not allow data races in multithreaded code</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1765</td>
    <td width=92%>Definite: data race for object '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>mta-1766</td>
    <td width=92%>Apparent: data race for object '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>mta-1770</td>
    <td width=92%>Definite: data race for a volatile object '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>mta-1771</td>
    <td width=92%>Definite: data race for a mutable object '%1s'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL00</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Const-qualify immutable objects</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3204</td>
    <td width=92%>The variable '%s' is only set once and so it could be declared with the 'const' qualifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-3227</td>
    <td width=92%>The parameter '%s' is never modified and so it could be declared with the 'const' qualifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-3232</td>
    <td width=92%>File scope static, '%s', is never modified. It could be declared const.</td>
  </tr>
  <tr>
    <td width=8%>qac-3673</td>
    <td width=92%>The object addressed by the pointer parameter '%1s' is not modified and so the pointer could be of type 'pointer to const'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3677</td>
    <td width=92%>The elements of the array parameter '%1s' are not modified and so they could be qualified as 'const'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL01</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not reuse variable names in subscopes</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0795</td>
    <td width=92%>Identifier matches other identifier(s) (e.g. '%1s') in an outer scope within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0796</td>
    <td width=92%>Identifier matches other identifier(s) (e.g. '%1s') in an outer scope within the ISO:C99 limit of 63 significant characters</td>
  </tr>
  <tr>
    <td width=8%>qac-2547</td>
    <td width=92%>This declaration of tag '%s' hides a more global declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-3334</td>
    <td width=92%>This declaration of '%1s' hides a more global declaration.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL05</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use typedefs of non-pointer types only</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5004</td>
    <td width=92%>This typedef is applied to a pointer type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL06</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use meaningful symbolic constants to represent literal values</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3120</td>
    <td width=92%>Hard-coded 'magic' integer constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3121</td>
    <td width=92%>Hard-coded 'magic' floating constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3122</td>
    <td width=92%>Hard-coded 'magic' string literal, %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-3123</td>
    <td width=92%>Hard coded 'magic' character constant, %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-3131</td>
    <td width=92%>Hard coded 'magic' number, '%1s', used to define the size of a bit-field.</td>
  </tr>
  <tr>
    <td width=8%>qac-3132</td>
    <td width=92%>Hard coded 'magic' number, '%1s', used to define the size of an array.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL07</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Include the appropriate type information in function declarators</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1304</td>
    <td width=92%>Old style definition of function '%1s()' is not portable to C++.</td>
  </tr>
  <tr>
    <td width=8%>qac-2050</td>
    <td width=92%>The 'int' type specifier has been omitted from a function declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-3331</td>
    <td width=92%>The definition for identifier '%s' with external linkage conflicts with a previous declaration in the same scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-3335</td>
    <td width=92%>No function declaration. Implicit declaration inserted: 'extern int %s();'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3408</td>
    <td width=92%>'%1s' has external linkage and is being defined without any previous declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-3450</td>
    <td width=92%>Function '%s', with internal linkage, is being defined without a previous declaration.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL10</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Maintain the contract between the writer and caller of variadic functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0184</td>
    <td width=92%>[U] Insufficient arguments to satisfy conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0185</td>
    <td width=92%>[U] Call contains more arguments than conversion specifiers.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL11</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Understand the type issues associated with variadic functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0179</td>
    <td width=92%>[U] Argument type does not match conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0184</td>
    <td width=92%>[U] Insufficient arguments to satisfy conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0185</td>
    <td width=92%>[U] Call contains more arguments than conversion specifiers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0186</td>
    <td width=92%>[U] A call to this function must include at least one argument.</td>
  </tr>
  <tr>
    <td width=8%>qac-0190</td>
    <td width=92%>[U] Using unsupported conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0191</td>
    <td width=92%>[U] Unknown length modifier used with 'd/i/n' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0192</td>
    <td width=92%>[U] Unknown length modifier used with 'o' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0193</td>
    <td width=92%>[U] Unknown length modifier used with 'u' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0194</td>
    <td width=92%>[U] Unknown length modifier used with 'x/X' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0195</td>
    <td width=92%>[U] Unknown length modifier used with 'e/E/f/F/g/G' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0196</td>
    <td width=92%>[U] Unknown length modifier used with 's' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0197</td>
    <td width=92%>[U] Unknown length modifier used with 'p' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0198</td>
    <td width=92%>[U] Unknown length modifier used with '%%' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0199</td>
    <td width=92%>[U] Unknown length modifier used with '[' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0200</td>
    <td width=92%>[U] Unknown length modifier used with 'c' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0201</td>
    <td width=92%>[U] Incomplete conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0206</td>
    <td width=92%>[U] Argument type does not match conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0207</td>
    <td width=92%>[U] 'scanf' expects address of objects being stored into.</td>
  </tr>
  <tr>
    <td width=8%>qac-0208</td>
    <td width=92%>[U] Same character occurs in scanset more than once.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL13</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Declare function parameters that are pointers to values not changed by the function as const</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0431</td>
    <td width=92%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-3673</td>
    <td width=92%>The object addressed by the pointer parameter '%1s' is not modified and so the pointer could be of type 'pointer to const'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3677</td>
    <td width=92%>The elements of the array parameter '%1s' are not modified and so they could be qualified as 'const'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL15</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Declare file-scope objects or functions that do not need external linkage as static</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>rcma-1504</td>
    <td width=92%>The object '%1s' is only referenced in the translation unit where it is defined.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1531</td>
    <td width=92%>The object '%1s' is referenced in only one translation unit - but not the one in which it is defined.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL16</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use 'L', not 'l', to indicate a long value</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1280</td>
    <td width=92%>A lowercase letter L (l) has been used in an integer or floating suffix.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL18</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not begin integer constants with 0 when specifying a decimal value</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0339</td>
    <td width=92%>Octal constant used.</td>
  </tr>
  <tr>
    <td width=8%>qac-1272</td>
    <td width=92%>Redundant leading zeroes on a numeric constant.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL19</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Minimize the scope of variables and functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>rcma-1504</td>
    <td width=92%>The object '%1s' is only referenced in the translation unit where it is defined.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1505</td>
    <td width=92%>The function '%1s' is only referenced in the translation unit where it is defined.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1531</td>
    <td width=92%>The object '%1s' is referenced in only one translation unit - but not the one in which it is defined.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1532</td>
    <td width=92%>The function '%1s' is only referenced in one translation unit - but not the one in which it is defined.</td>
  </tr>
  <tr>
    <td width=8%>qac-3210</td>
    <td width=92%>The global identifier '%1s' is declared here but is not used in this translation unit.</td>
  </tr>
  <tr>
    <td width=8%>qac-3218</td>
    <td width=92%>File scope static, '%1s', is only accessed in one function.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL20</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Explicitly specify void when a function accepts no arguments</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3001</td>
    <td width=92%>Function has been declared with an empty parameter list.</td>
  </tr>
  <tr>
    <td width=8%>qac-3007</td>
    <td width=92%>"void" has been omitted when defining a function with no parameters.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL21</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Understand the storage of compound literals</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1054</td>
    <td width=92%>[C99] A compound literal has been used.</td>
  </tr>
  <tr>
    <td width=8%>qac-3217</td>
    <td width=92%>Address of automatic object exported to a pointer with linkage or wider scope.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL23</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Guarantee that mutually visible identifiers are unique</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0627</td>
    <td width=92%>[C] '%s' has different type to previous declaration in the same scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-0776</td>
    <td width=92%>[L] External identifier matches other external identifier(s) (e.g. '%1s') in first 6 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=8%>qac-0777</td>
    <td width=92%>[U] External identifier does not differ from other identifier(s) (e.g. '%1s') within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0778</td>
    <td width=92%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 31 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=8%>qac-0779</td>
    <td width=92%>[U] Identifier does not differ from other identifier(s) (e.g. '%1s') within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0789</td>
    <td width=92%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 63 characters - program does not conform strictly to ISO:C99.</td>
  </tr>
  <tr>
    <td width=8%>qac-0791</td>
    <td width=92%>[U] Macro identifier does not differ from other macro identifier(s) (e.g. '%1s') within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0793</td>
    <td width=92%>[L] Macro identifier matches other macro identifier(s) (e.g. '%1s') in first 63 characters - program does not conform strictly to ISO:C99.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL30</td>
    <td width=2%>Rule</td>
    <td width=40%>Declare objects with appropriate storage durations</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3217</td>
    <td width=92%>Address of automatic object exported to a pointer with linkage or wider scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-3225</td>
    <td width=92%>Address of automatic object exported using a function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-3230</td>
    <td width=92%>Address of automatic object assigned to local pointer with static storage duration.</td>
  </tr>
  <tr>
    <td width=8%>qac-4140</td>
    <td width=92%>Address of automatic object exported in function return value.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL31</td>
    <td width=2%>Rule</td>
    <td width=40%>Declare identifiers before using them</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0434</td>
    <td width=92%>[S] The identifier '%s' has not been declared.</td>
  </tr>
  <tr>
    <td width=8%>qac-2050</td>
    <td width=92%>The 'int' type specifier has been omitted from a function declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-2051</td>
    <td width=92%>The 'int' type specifier has been omitted from an object declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-3335</td>
    <td width=92%>No function declaration. Implicit declaration inserted: 'extern int %s();'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL36</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not declare an identifier with conflicting linkage classifications</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0625</td>
    <td width=92%>[U] '%s' has been declared with both internal and external linkage - the behaviour is undefined.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL37</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not declare or define a reserved identifier</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0602</td>
    <td width=92%>[U] The identifier '%s' is reserved for use by the library.</td>
  </tr>
  <tr>
    <td width=8%>qac-0603</td>
    <td width=92%>[U] The macro identifier '%s' is reserved.</td>
  </tr>
  <tr>
    <td width=8%>qac-4600</td>
    <td width=92%>The macro '%1s' is also defined in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4601</td>
    <td width=92%>The macro '%1s' is the name of an identifier in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4602</td>
    <td width=92%>The identifier '%1s' is declared as a macro in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4603</td>
    <td width=92%>The object/function '%1s'is being defined with the same name as an ordinary identifier defined in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4604</td>
    <td width=92%>The object/function '%1s' is being declared with the same name as an ordinary identifier defined in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4605</td>
    <td width=92%>The typedef '%1s' is also defined in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4606</td>
    <td width=92%>The typedef '%1s' has the same name as another ordinary identifier in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4607</td>
    <td width=92%>The enum constant '%1s' has the same name as another ordinary identifier in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4608</td>
    <td width=92%>The tag '%1s' is also defined in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4620</td>
    <td width=92%>The macro '%1s' may also be defined as a macro in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4621</td>
    <td width=92%>The macro '%1s' may also be defined as a typedef in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4622</td>
    <td width=92%>The identifier '%1s' may be defined as a macro in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4623</td>
    <td width=92%>The typedef '%1s' may also be defined in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4624</td>
    <td width=92%>The ordinary identifier '%1s' may be defined as a typedef in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4640</td>
    <td width=92%>The macro '%1s' could conflict in the future with the name of a macro in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4641</td>
    <td width=92%>The identifier '%1s' could conflict in the future with the name of a macro in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4642</td>
    <td width=92%>The macro '%1s' could conflict in the future with the name of a function in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4643</td>
    <td width=92%>The identifier '%1s' could conflict in the future with the name of a function in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4644</td>
    <td width=92%>The macro '%1s' could conflict in the future with the name of a typedef in '<%2s>'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4645</td>
    <td width=92%>The identifier '%1s' could conflict in the future with the name of a typedef in '<%2s>'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL38</td>
    <td width=2%>Rule</td>
    <td width=40%>Use the correct syntax when declaring a flexible array member</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1037</td>
    <td width=92%>[E] Arrays of length zero are a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1039</td>
    <td width=92%>[E] Treating array of length one as potentially flexible member.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL39</td>
    <td width=2%>Rule</td>
    <td width=40%>Avoid information leakage when passing a structure across a trust boundary</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4941</td>
    <td width=92%>Definite: Passing a padded structure from a trusted boundary to another domain.</td>
  </tr>
  <tr>
    <td width=8%>qac-4942</td>
    <td width=92%>Apparent: Passing a padded structure from a trusted boundary to another domain.</td>
  </tr>
  <tr>
    <td width=8%>qac-4943</td>
    <td width=92%>Suspicious: Passing a padded structure from a trusted boundary to another domain.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL40</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not create incompatible declarations of the same function or object</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0776</td>
    <td width=92%>[L] External identifier matches other external identifier(s) (e.g. '%1s') in first 6 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=8%>qac-0778</td>
    <td width=92%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 31 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=8%>qac-0779</td>
    <td width=92%>[U] Identifier does not differ from other identifier(s) (e.g. '%1s') within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0789</td>
    <td width=92%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 63 characters - program does not conform strictly to ISO:C99.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1510</td>
    <td width=92%>'%1s' has external linkage and has incompatible declarations.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>DCL41</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not declare variables inside a switch statement before the first case label</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2008</td>
    <td width=92%>Code statements precede the first label in this 'switch' construct.</td>
  </tr>
  <tr>
    <td width=8%>qac-2882</td>
    <td width=92%>This 'switch' statement will bypass the initialization of local variables.</td>
  </tr>
  <tr>
    <td width=8%>qac-3234</td>
    <td width=92%>Declarations precede the first label in this 'switch' construct.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ENV03</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Sanitize the environment when invoking external programs</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5017</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ENV30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not modify the object referenced by the return value of certain functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1492</td>
    <td width=92%>The result of library function '%1s' is used to modify the referenced object.</td>
  </tr>
  <tr>
    <td width=8%>qac-1493</td>
    <td width=92%>The result of library function '%1s' is used as a pointer to a modifiable object.</td>
  </tr>
  <tr>
    <td width=8%>qac-1494</td>
    <td width=92%>The result of library function '%1s' might be modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-4751</td>
    <td width=92%>Definite: Modifying an object that is referenced by the return value of a library function.</td>
  </tr>
  <tr>
    <td width=8%>qac-4752</td>
    <td width=92%>Apparent: Modifying an object that is referenced by the return value of a library function.</td>
  </tr>
  <tr>
    <td width=8%>qac-4753</td>
    <td width=92%>Suspicious: Modifying an object that is referenced by the return value of a library function.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ENV31</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not rely on an environment pointer following an operation that may invalidate it</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4991</td>
    <td width=92%>Definite: Using an invalidated value '%s' of the environment pointer passed as the third argument to main.</td>
  </tr>
  <tr>
    <td width=8%>qac-4992</td>
    <td width=92%>Apparent: Using an invalidated value '%s' of the environment pointer passed as the third argument to main.</td>
  </tr>
  <tr>
    <td width=8%>qac-4993</td>
    <td width=92%>Suspicious: Using an invalidated value '%s' of the environment pointer passed as the third argument to main.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ENV32</td>
    <td width=2%>Rule</td>
    <td width=40%>All exit handlers must return normally</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4856</td>
    <td width=92%>Definite: Atexit handler does not return normally.</td>
  </tr>
  <tr>
    <td width=8%>qac-4857</td>
    <td width=92%>Apparent: Atexit handler does not return normally.</td>
  </tr>
  <tr>
    <td width=8%>qac-4858</td>
    <td width=92%>Suspicious: Atexit handler does not return normally.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ENV33</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not call system()</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5018</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ENV34</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not store pointers returned by certain functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2681</td>
    <td width=92%>Definite: Using an invalidated value '%s' returned from a Standard Library function.</td>
  </tr>
  <tr>
    <td width=8%>qac-2682</td>
    <td width=92%>Apparent: Using an invalidated value '%s' returned from a Standard Library function.</td>
  </tr>
  <tr>
    <td width=8%>qac-2683</td>
    <td width=92%>Suspicious: Using an invalidated value '%s' returned from a Standard Library function.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ERR30</td>
    <td width=2%>Rule</td>
    <td width=40%>Set errno to zero before calling a library function known to set errno, and check errno only after the function returns a value indicating failure</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2500</td>
    <td width=92%>Call to '%s' is not immediately preceded by the zero-ing of 'errno'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2501</td>
    <td width=92%>Call to '%s' is not immediately followed by the testing of 'errno'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2502</td>
    <td width=92%>Zero-ing of 'errno' is not immediately followed by a call to an 'errno' setting function.</td>
  </tr>
  <tr>
    <td width=8%>qac-2503</td>
    <td width=92%>Testing of 'errno' is not immediately preceded by a call to an 'errno' setting function.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ERR32</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not rely on indeterminate values of errno</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2031</td>
    <td width=92%>Signal handler '%1s' accesses errno.</td>
  </tr>
  <tr>
    <td width=8%>qac-4781</td>
    <td width=92%>Definite: Signal handler causes the value of errno to be indeterminate.</td>
  </tr>
  <tr>
    <td width=8%>qac-4782</td>
    <td width=92%>Apparent: Signal handler causes the value of errno to be indeterminate.</td>
  </tr>
  <tr>
    <td width=8%>qac-4783</td>
    <td width=92%>Suspicious: Signal handler causes the value of errno to be indeterminate.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ERR33</td>
    <td width=2%>Rule</td>
    <td width=40%>Detect and handle standard library errors</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3200</td>
    <td width=92%>'%s' returns a value which is not being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>ERR34</td>
    <td width=2%>Rule</td>
    <td width=40%>Detect errors when converting a string to a number</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5030</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP00</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use parentheses for precedence of operation</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3389</td>
    <td width=92%>Extra parentheses recommended to clarify the ordering of a % operator and another arithmetic operator (* / % + -).</td>
  </tr>
  <tr>
    <td width=8%>qac-3390</td>
    <td width=92%>Expression is equivalent to: "%s"</td>
  </tr>
  <tr>
    <td width=8%>qac-3391</td>
    <td width=92%>Extra parentheses recommended. A conditional operation is the operand of another conditional operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-3392</td>
    <td width=92%>Extra parentheses recommended. A shift, relational or equality operation is the operand of a second identical operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-3393</td>
    <td width=92%>Extra parentheses recommended. An arithmetic operation (* / + -) is the operand of a different operator with the same precedence.</td>
  </tr>
  <tr>
    <td width=8%>qac-3394</td>
    <td width=92%>Extra parentheses recommended. A shift, relational or equality operation is the operand of a different operator with the same precedence.</td>
  </tr>
  <tr>
    <td width=8%>qac-3395</td>
    <td width=92%>Extra parentheses recommended. A * or / operation is the operand of a + or - operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-3396</td>
    <td width=92%>Extra parentheses recommended. A binary operation is the operand of a conditional operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-3397</td>
    <td width=92%>Extra parentheses recommended. A binary operation is the operand of a binary operator with different precedence.</td>
  </tr>
  <tr>
    <td width=8%>qac-3398</td>
    <td width=92%>Extra parentheses recommended. A function call, array subscript, or member operation is the operand of a logical && or ||.</td>
  </tr>
  <tr>
    <td width=8%>qac-3399</td>
    <td width=92%>Extra parentheses recommended. A unary operation is the operand of a logical && or ||.</td>
  </tr>
  <tr>
    <td width=8%>qac-3400</td>
    <td width=92%>Extra parentheses recommended. A binary operation is the operand of a logical && or ||.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP02</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Be aware of the short-circuit behavior of the logical AND and OR operators</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3415</td>
    <td width=92%>Right hand operand of '&&' or '||' is an expression with persistent side effects.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP03</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not assume the size of a structure is the sum of the sizes of its members</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0697</td>
    <td width=92%>The size of the allocated memory block is not an integral multiple of the size of the object type addressed by the pointer cast.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP05</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not cast away a const qualification</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0311</td>
    <td width=92%>Dangerous pointer cast results in loss of const qualification.</td>
  </tr>
  <tr>
    <td width=8%>qac-0431</td>
    <td width=92%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP07</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not diminish the benefits of constants by assuming their values in expressions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3120</td>
    <td width=92%>Hard-coded 'magic' integer constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3121</td>
    <td width=92%>Hard-coded 'magic' floating constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3122</td>
    <td width=92%>Hard-coded 'magic' string literal, %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-3123</td>
    <td width=92%>Hard coded 'magic' character constant, %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-3131</td>
    <td width=92%>Hard coded 'magic' number, '%1s', used to define the size of a bit-field.</td>
  </tr>
  <tr>
    <td width=8%>qac-3132</td>
    <td width=92%>Hard coded 'magic' number, '%1s', used to define the size of an array.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP08</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Ensure pointer arithmetic is used correctly</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0488</td>
    <td width=92%>Performing pointer arithmetic.</td>
  </tr>
  <tr>
    <td width=8%>qac-2930</td>
    <td width=92%>Constant: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2931</td>
    <td width=92%>Definite: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2932</td>
    <td width=92%>Apparent: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2933</td>
    <td width=92%>Suspicious: Computing an invalid pointer value.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP10</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not depend on the order of evaluation of subexpressions or the order in which side effects take place</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0400</td>
    <td width=92%>[U] '%1s' is modified more than once between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0401</td>
    <td width=92%>[U] '%1s' may be modified more than once between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0402</td>
    <td width=92%>[U] '%1s' is modified and accessed between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0403</td>
    <td width=92%>[U] '%1s' may be modified and accessed between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0404</td>
    <td width=92%>[U] More than one read access to volatile objects between sequence points.</td>
  </tr>
  <tr>
    <td width=8%>qac-0405</td>
    <td width=92%>[U] More than one modification of volatile objects between sequence points.</td>
  </tr>
  <tr>
    <td width=8%>qac-3226</td>
    <td width=92%>The result of an assignment is being used in an arithmetic operation or another assigning operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-3326</td>
    <td width=92%>The result of an assignment is being used in a logical operation.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP11</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not make assumptions regarding the layout of structures with bit-fields</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0310</td>
    <td width=92%>Casting to different object pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0751</td>
    <td width=92%>Casting to char pointer type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP12</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not ignore values returned by functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3200</td>
    <td width=92%>'%s' returns a value which is not being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP13</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Treat relational and equality operators as if they were nonassociative</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3392</td>
    <td width=92%>Extra parentheses recommended. A shift, relational or equality operation is the operand of a second identical operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-3401</td>
    <td width=92%>Possible precedence confusion: extra parentheses are recommended here.</td>
  </tr>
  <tr>
    <td width=8%>qac-4111</td>
    <td width=92%>Right hand operand of relational operator is a 'Boolean' expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-4112</td>
    <td width=92%>Left hand operand of relational operator is a 'Boolean' expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-4113</td>
    <td width=92%>Both operands of relational operator are 'Boolean' expressions.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP15</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not place a semicolon on the same line as an if, for, or while statement</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3109</td>
    <td width=92%>Null statement follows other code on the same line.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP16</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not compare function pointers to constant values</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0428</td>
    <td width=92%>Function identifier is not followed by () but a function call may be intended.</td>
  </tr>
  <tr>
    <td width=8%>qac-3004</td>
    <td width=92%>This integral constant expression is being interpreted as a null pointer constant.</td>
  </tr>
  <tr>
    <td width=8%>qac-3344</td>
    <td width=92%>Controlling expression is not an 'essentially Boolean' expression.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP19</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use braces for the body of an if, for, or while statement</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2212</td>
    <td width=92%>Body of control statement is not enclosed within braces.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP20</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Perform explicit tests to determine success, true and false, and equality</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3344</td>
    <td width=92%>Controlling expression is not an 'essentially Boolean' expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-4116</td>
    <td width=92%>Operand of logical ! operator is not an 'essentially Boolean' expression.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not depend on the order of evaluation for side effects</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0400</td>
    <td width=92%>[U] '%1s' is modified more than once between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0401</td>
    <td width=92%>[U] '%1s' may be modified more than once between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0402</td>
    <td width=92%>[U] '%1s' is modified and accessed between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0403</td>
    <td width=92%>[U] '%1s' may be modified and accessed between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0404</td>
    <td width=92%>[U] More than one read access to volatile objects between sequence points.</td>
  </tr>
  <tr>
    <td width=8%>qac-0405</td>
    <td width=92%>[U] More than one modification of volatile objects between sequence points.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP32</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not access a volatile object through a nonvolatile reference</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0312</td>
    <td width=92%>Dangerous pointer cast results in loss of volatile qualification.</td>
  </tr>
  <tr>
    <td width=8%>qac-0562</td>
    <td width=92%>[C] Right operand of assignment points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0563</td>
    <td width=92%>[C] Right operand of assignment is not of compatible pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0673</td>
    <td width=92%>[C] Initializer points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0674</td>
    <td width=92%>[C] Initializer for pointer is of incompatible type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP33</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not read uninitialized memory</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2726</td>
    <td width=92%>Definite: Use of uninitialized resource.</td>
  </tr>
  <tr>
    <td width=8%>qac-2727</td>
    <td width=92%>Apparent: Use of uninitialized resource.</td>
  </tr>
  <tr>
    <td width=8%>qac-2728</td>
    <td width=92%>Suspicious: Use of uninitialized resource.</td>
  </tr>
  <tr>
    <td width=8%>qac-2961</td>
    <td width=92%>Definite: Using value of uninitialized automatic object '%s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2962</td>
    <td width=92%>Apparent: Using value of uninitialized automatic object '%s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2963</td>
    <td width=92%>Suspicious: Using value of uninitialized automatic object '%s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2966</td>
    <td width=92%>Definite: Some members of object '%s' are uninitialized.</td>
  </tr>
  <tr>
    <td width=8%>qac-2967</td>
    <td width=92%>Apparent: Some members of object '%s' are uninitialized.</td>
  </tr>
  <tr>
    <td width=8%>qac-2968</td>
    <td width=92%>Suspicious: Some members of object '%s' are uninitialized.</td>
  </tr>
  <tr>
    <td width=8%>qac-2971</td>
    <td width=92%>Definite: Passing address of uninitialized object '%s' to a function parameter declared as a pointer to const.</td>
  </tr>
  <tr>
    <td width=8%>qac-2972</td>
    <td width=92%>Apparent: Passing address of uninitialized object '%s' to a function parameter declared as a pointer to const.</td>
  </tr>
  <tr>
    <td width=8%>qac-2973</td>
    <td width=92%>Suspicious: Passing address of uninitialized object '%s' to a function parameter declared as a pointer to const.</td>
  </tr>
  <tr>
    <td width=8%>qac-2976</td>
    <td width=92%>Definite: Passing address of partially initialized object '%s' to a function parameter declared as a pointer to const.</td>
  </tr>
  <tr>
    <td width=8%>qac-2977</td>
    <td width=92%>Apparent: Passing address of partially initialized object '%s' to a function parameter declared as a pointer to const.</td>
  </tr>
  <tr>
    <td width=8%>qac-2978</td>
    <td width=92%>Suspicious: Passing address of partially initialized object '%s' to a function parameter declared as a pointer to const.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP34</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not dereference null pointers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2810</td>
    <td width=92%>Constant: Dereference of NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2811</td>
    <td width=92%>Definite: Dereference of NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2812</td>
    <td width=92%>Apparent: Dereference of NULL pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-2813</td>
    <td width=92%>Suspicious: Dereference of NULL pointer.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP35</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not modify objects with temporary lifetime</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0450</td>
    <td width=92%>[U] Passing an array with temporary lifetime as a function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0455</td>
    <td width=92%>[U] Passing an array with temporary lifetime as a constant function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0459</td>
    <td width=92%>[U] Modifying the contents of an array with temporary lifetime.</td>
  </tr>
  <tr>
    <td width=8%>qac-0464</td>
    <td width=92%>[U] Storing a pointer to an array with temporary lifetime.</td>
  </tr>
  <tr>
    <td width=8%>qac-0465</td>
    <td width=92%>[U] Returning a pointer to an array with temporary lifetime.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP36</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not cast pointers into more strictly aligned pointer types</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0326</td>
    <td width=92%>[I] Cast between a pointer to void and an integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-3305</td>
    <td width=92%>Pointer cast to stricter alignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP37</td>
    <td width=2%>Rule</td>
    <td width=40%>Call functions with the correct number and type of arguments</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1331</td>
    <td width=92%>Type or number of arguments doesn't match previous use of the function.</td>
  </tr>
  <tr>
    <td width=8%>qac-1332</td>
    <td width=92%>Type or number of arguments doesn't match prototype found later.</td>
  </tr>
  <tr>
    <td width=8%>qac-1333</td>
    <td width=92%>Type or number of arguments doesn't match function definition found later.</td>
  </tr>
  <tr>
    <td width=8%>qac-3002</td>
    <td width=92%>Defining '%1s()' with an identifier list and separate parameter declarations is an obsolescent feature.</td>
  </tr>
  <tr>
    <td width=8%>qac-3320</td>
    <td width=92%>Type of argument no. %s differs from its type in definition of function.</td>
  </tr>
  <tr>
    <td width=8%>qac-3335</td>
    <td width=92%>No function declaration. Implicit declaration inserted: 'extern int %s();'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP39</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not access a variable through a pointer of an incompatible type</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0310</td>
    <td width=92%>Casting to different object pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0751</td>
    <td width=92%>Casting to char pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-3305</td>
    <td width=92%>Pointer cast to stricter alignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP40</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not modify constant objects</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0563</td>
    <td width=92%>[C] Right operand of assignment is not of compatible pointer type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP42</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not compare padding data</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4726</td>
    <td width=92%>Definite: Comparison of padding bits that are not part of the object representation.</td>
  </tr>
  <tr>
    <td width=8%>qac-4727</td>
    <td width=92%>Apparent: Comparison of padding bits that are not part of the object representation.</td>
  </tr>
  <tr>
    <td width=8%>qac-4728</td>
    <td width=92%>Suspicious: Comparison of padding bits that are not part of the object representation.</td>
  </tr>
  <tr>
    <td width=8%>qac-4729</td>
    <td width=92%>Possible: Comparison of padding bits that are not part of the object representation.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP43</td>
    <td width=2%>Rule</td>
    <td width=40%>Avoid undefined behavior when using restrict-qualified pointers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1057</td>
    <td width=92%>[C99] The keyword 'restrict' has been used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP44</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not rely on side effects in operands to sizeof, _Alignof, or _Generic</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3307</td>
    <td width=92%>The operand of 'sizeof' is an expression with implied side effects, but they will not be evaluated.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP45</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not perform assignments in selection statements</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3314</td>
    <td width=92%>This controlling expression is an assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-3326</td>
    <td width=92%>The result of an assignment is being used in a logical operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-3344</td>
    <td width=92%>Controlling expression is not an 'essentially Boolean' expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-3416</td>
    <td width=92%>Logical operation performed on expression with persistent side effects.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP46</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not use a bitwise operator with a Boolean-like operand</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3344</td>
    <td width=92%>Controlling expression is not an 'essentially Boolean' expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-4502</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>EXP47</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not call va_arg with an argument of the incorrect type</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4901</td>
    <td width=92%>Definite: Invalid call to va_arg.</td>
  </tr>
  <tr>
    <td width=8%>qac-4902</td>
    <td width=92%>Apparent: Invalid call to va_arg.</td>
  </tr>
  <tr>
    <td width=8%>qac-4903</td>
    <td width=92%>Suspicious: Invalid call to va_arg.</td>
  </tr>
  <tr>
    <td width=8%>qac-4904</td>
    <td width=92%>Possible: Invalid call to va_arg.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO01</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Be careful using functions that use file names for identification</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5011</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO03</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not make assumptions about fopen() and file creation</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5012</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO06</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Create files with appropriate access permissions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5013</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO08</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Take care when calling remove() on an open file</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5014</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO10</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Take care when using the rename() function</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5015</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO21</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not create temporary files in shared directories</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5016</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO30</td>
    <td width=2%>Rule</td>
    <td width=40%>Exclude user input from format strings</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4916</td>
    <td width=92%>Definite: Using a tainted variable as format string.</td>
  </tr>
  <tr>
    <td width=8%>qac-4917</td>
    <td width=92%>Apparent: Using a tainted variable as format string.</td>
  </tr>
  <tr>
    <td width=8%>qac-4918</td>
    <td width=92%>Suspicious: Using a tainted variable as format string.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO32</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not perform operations on devices that are only appropriate for files</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4921</td>
    <td width=92%>Definite: Using a tainted variable as a device name when opening a device that could be a file.</td>
  </tr>
  <tr>
    <td width=8%>qac-4922</td>
    <td width=92%>Apparent: Using a tainted variable as a device name when opening a device that could be a file.</td>
  </tr>
  <tr>
    <td width=8%>qac-4923</td>
    <td width=92%>Suspicious: Using a tainted variable as a device name when opening a device that could be a file.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO34</td>
    <td width=2%>Rule</td>
    <td width=40%>Distinguish between characters read from a file and EOF or WEOF</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2676</td>
    <td width=92%>Definite: The value originating from an EOF returning function was modified before being compared with macro EOF.</td>
  </tr>
  <tr>
    <td width=8%>qac-2678</td>
    <td width=92%>Suspicious: The value originating from an EOF returning function was modified before being compared with macro EOF.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO37</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not assume that fgets() or fgetws() returns a nonempty string when successful</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4911</td>
    <td width=92%>Definite: Assuming that fgets or fgetws returned a non empty string.</td>
  </tr>
  <tr>
    <td width=8%>qac-4912</td>
    <td width=92%>Apparent: Assuming that fgets or fgetws returned a non empty string.</td>
  </tr>
  <tr>
    <td width=8%>qac-4913</td>
    <td width=92%>Suspicious: Assuming that fgets or fgetws returned a non empty string.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO38</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not copy a FILE object</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1485</td>
    <td width=92%>A pointer to a FILE object is dereferenced.</td>
  </tr>
  <tr>
    <td width=8%>certccm-5028</td>
    <td width=92%>Copy of a FILE object.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO39</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not alternately input and output from a stream without an intervening flush or positioning call</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4711</td>
    <td width=92%>Definite: Alternating I/O operations on a file stream found without an intervening positioning call or EOF.</td>
  </tr>
  <tr>
    <td width=8%>qac-4712</td>
    <td width=92%>Apparent: Alternating I/O operations on a file stream found without an intervening positioning call or EOF.</td>
  </tr>
  <tr>
    <td width=8%>qac-4713</td>
    <td width=92%>Suspicious: Alternating I/O operations on a file stream found without an intervening positioning call or EOF.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO40</td>
    <td width=2%>Rule</td>
    <td width=40%>Reset strings on fgets() or fgetws() failure</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4861</td>
    <td width=92%>Definite: Using an array containing indeterminate values after a call to fgets or fgetws.</td>
  </tr>
  <tr>
    <td width=8%>qac-4862</td>
    <td width=92%>Apparent: Using an array containing indeterminate values after a call to fgets or fgetws.</td>
  </tr>
  <tr>
    <td width=8%>qac-4863</td>
    <td width=92%>Suspicious: Using an array containing indeterminate values after a call to fgets or fgetws.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO41</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not call getc(), putc(), getwc(), or putwc() with a stream argument that has side effects</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5036</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO42</td>
    <td width=2%>Rule</td>
    <td width=40%>Close files when they are no longer needed</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2701</td>
    <td width=92%>Definite: Opened file is not closed.</td>
  </tr>
  <tr>
    <td width=8%>qac-2702</td>
    <td width=92%>Apparent: Opened file is not closed.</td>
  </tr>
  <tr>
    <td width=8%>qac-2703</td>
    <td width=92%>Suspicious: Opened file is not closed.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO44</td>
    <td width=2%>Rule</td>
    <td width=40%>Only use values for fsetpos() that are returned from fgetpos()</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4841</td>
    <td width=92%>Definite: Passing a file position argument to fsetpos() not obtained from fgetpos().</td>
  </tr>
  <tr>
    <td width=8%>qac-4842</td>
    <td width=92%>Apparent: Passing a file position argument to fsetpos() not obtained from fgetpos().</td>
  </tr>
  <tr>
    <td width=8%>qac-4843</td>
    <td width=92%>Suspicious: Passing a file position argument to fsetpos() not obtained from fgetpos().</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO45</td>
    <td width=2%>Rule</td>
    <td width=40%>Avoid TOCTOU race conditions while accessing files</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4851</td>
    <td width=92%>Definite: File access time-of-check time-of-use race condition.</td>
  </tr>
  <tr>
    <td width=8%>qac-4852</td>
    <td width=92%>Apparent: File access time-of-check time-of-use race condition.</td>
  </tr>
  <tr>
    <td width=8%>qac-4853</td>
    <td width=92%>Suspicious: File access time-of-check time-of-use race condition.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO46</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not access a closed file</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2696</td>
    <td width=92%>Definite: Attempt to access a file which has been closed.</td>
  </tr>
  <tr>
    <td width=8%>qac-2697</td>
    <td width=92%>Apparent: Attempt to access a file which has been closed.</td>
  </tr>
  <tr>
    <td width=8%>qac-2698</td>
    <td width=92%>Suspicious: Attempt to access a file which has been closed.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FIO47</td>
    <td width=2%>Rule</td>
    <td width=40%>Use valid format strings</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0161</td>
    <td width=92%>[U] Unknown length modifier used with 'i' or 'd' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0162</td>
    <td width=92%>[U] Unknown length modifier used with 'o' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0163</td>
    <td width=92%>[U] Unknown length modifier used with 'u' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0164</td>
    <td width=92%>[U] Unknown length modifier used with 'x' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0165</td>
    <td width=92%>[U] Unknown length modifier used with 'X' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0166</td>
    <td width=92%>[U] Unknown length modifier used with 'f' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0167</td>
    <td width=92%>[U] Unknown length modifier used with 'e' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0168</td>
    <td width=92%>[U] Unknown length modifier used with 'E' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0169</td>
    <td width=92%>[U] Unknown length modifier used with 'g' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0170</td>
    <td width=92%>[U] Unknown length modifier used with 'G' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0171</td>
    <td width=92%>[U] Unknown length modifier used with 'c' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0172</td>
    <td width=92%>[U] Unknown length modifier used with '%%' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0173</td>
    <td width=92%>[U] Unknown length modifier used with 's' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0174</td>
    <td width=92%>[U] Unknown length modifier used with 'n' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0175</td>
    <td width=92%>[U] Unknown length modifier used with 'p' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0176</td>
    <td width=92%>[U] Incomplete conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0177</td>
    <td width=92%>[U] Field width of format conversion specifier exceeds 509 characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0178</td>
    <td width=92%>[U] Precision of format conversion specifier exceeds 509 characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0179</td>
    <td width=92%>[U] Argument type does not match conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0180</td>
    <td width=92%>[C99] Use of ll for conversion specifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-0184</td>
    <td width=92%>[U] Insufficient arguments to satisfy conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0185</td>
    <td width=92%>[U] Call contains more arguments than conversion specifiers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0190</td>
    <td width=92%>[U] Using unsupported conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0191</td>
    <td width=92%>[U] Unknown length modifier used with 'd/i/n' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0192</td>
    <td width=92%>[U] Unknown length modifier used with 'o' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0193</td>
    <td width=92%>[U] Unknown length modifier used with 'u' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0194</td>
    <td width=92%>[U] Unknown length modifier used with 'x/X' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0195</td>
    <td width=92%>[U] Unknown length modifier used with 'e/E/f/F/g/G' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0196</td>
    <td width=92%>[U] Unknown length modifier used with 's' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0197</td>
    <td width=92%>[U] Unknown length modifier used with 'p' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0198</td>
    <td width=92%>[U] Unknown length modifier used with '%%' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0199</td>
    <td width=92%>[U] Unknown length modifier used with '[' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0200</td>
    <td width=92%>[U] Unknown length modifier used with 'c' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0201</td>
    <td width=92%>[U] Incomplete conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0202</td>
    <td width=92%>[I] '-' character in '[]' conversion specification is implementation defined.</td>
  </tr>
  <tr>
    <td width=8%>qac-0204</td>
    <td width=92%>[U] Field width of format conversion specifier exceeds 509 characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0206</td>
    <td width=92%>[U] Argument type does not match conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0209</td>
    <td width=92%>[U] Using a non-constant format string.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP02</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Avoid using floating-point numbers when precise computation is needed</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0790</td>
    <td width=92%>This translation unit makes use of floating types.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP06</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Convert integers to floating point for floating point operations</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4117</td>
    <td width=92%>Result of integer division operation implicitly converted to a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-4118</td>
    <td width=92%>Result of integer division operation cast to a floating type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not use floating-point variables as loop counters</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3339</td>
    <td width=92%>Floating point variable used as 'while' loop control variable.</td>
  </tr>
  <tr>
    <td width=8%>qac-3340</td>
    <td width=92%>Floating point variable used as 'for' loop control variable.</td>
  </tr>
  <tr>
    <td width=8%>qac-3342</td>
    <td width=92%>Controlling expression of 'for' loop is a floating point comparison.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP32</td>
    <td width=2%>Rule</td>
    <td width=40%>Prevent or detect domain and range errors in math functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5025</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP34</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure that floating-point conversions are within range of the new type</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4450</td>
    <td width=92%>An expression of 'essentially floating' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4451</td>
    <td width=92%>An expression of 'essentially floating' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4452</td>
    <td width=92%>An expression of 'essentially floating' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4453</td>
    <td width=92%>An expression of 'essentially floating' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4454</td>
    <td width=92%>An expression of 'essentially floating' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4462</td>
    <td width=92%>A non-constant expression of 'essentially floating' type (%1s) is being converted to narrower floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4465</td>
    <td width=92%>A constant expression of 'essentially floating' type (%1s) is being converted to narrower floating type, '%2s' on assignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP36</td>
    <td width=2%>Rule</td>
    <td width=40%>Preserve precision when converting integral values to floating-point type</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1260</td>
    <td width=92%>Integer constant implicitly converted to a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1263</td>
    <td width=92%>Floating constant causes implicit conversion of other (integral) operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-1298</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to floating type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1299</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to floating type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1800</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1802</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this relational operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1803</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this equality operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1804</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this conditional operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-4117</td>
    <td width=92%>Result of integer division operation implicitly converted to a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-4435</td>
    <td width=92%>A non-constant expression of 'essentially signed' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4437</td>
    <td width=92%>A constant expression of 'essentially signed' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4445</td>
    <td width=92%>An expression of 'essentially unsigned' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>FLP37</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not use object representations to compare floating-point values</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5026</td>
    <td width=92%>Incorrect floating point value comparison.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT02</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Understand integer conversion rules</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1250</td>
    <td width=92%>Unsuffixed integer constant causes implicit conversion of other operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-1251</td>
    <td width=92%>Suffixed integer constant causes implicit conversion of other operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-1252</td>
    <td width=92%>Suffixed integer constant implicitly converted to different integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1253</td>
    <td width=92%>Unsuffixed integer constant implicitly converted to different integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1256</td>
    <td width=92%>An integer constant suffixed with L is being converted to type signed or unsigned long long on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1257</td>
    <td width=92%>An integer constant suffixed with L or LL is being converted to a type of lower rank on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1260</td>
    <td width=92%>Integer constant implicitly converted to a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1263</td>
    <td width=92%>Floating constant causes implicit conversion of other (integral) operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-1266</td>
    <td width=92%>A floating constant is being converted to integral type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1274</td>
    <td width=92%>Unsuffixed floating constant causes implicit conversion of other (floating) operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-1290</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to unsigned type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1291</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to signed type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1292</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to type char on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1293</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to type char on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1294</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to type _Bool on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1295</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to type _Bool on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1296</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to enum type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1297</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to enum type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1298</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to floating type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1299</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to floating type on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1800</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1802</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this relational operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1803</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this equality operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1804</td>
    <td width=92%>The %1s operand (essential type: '%2s') will be implicitly converted to a floating type, '%3s', in this conditional operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1810</td>
    <td width=92%>An operand of 'essentially character' type is being added to another operand of 'essentially character' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1811</td>
    <td width=92%>An operand of 'essentially character' type is being subtracted from an operand of 'essentially signed' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1812</td>
    <td width=92%>An operand of 'essentially character' type is being subtracted from an operand of 'essentially unsigned' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1813</td>
    <td width=92%>An operand of 'essentially character' type is being balanced with an operand of 'essentially floating' type in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1820</td>
    <td width=92%>The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1821</td>
    <td width=92%>The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this bitwise operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1822</td>
    <td width=92%>The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this relational operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1823</td>
    <td width=92%>The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this equality operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1824</td>
    <td width=92%>The %1s operand is non-constant and 'essentially signed' (%2s) but will be implicitly converted to an unsigned type (%3s) in this conditional operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1830</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1831</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this bitwise operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1832</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this relational operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1833</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this equality operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1834</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and negative but will be implicitly converted to an unsigned type (%3s) in this conditional operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1840</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1841</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this bitwise operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1842</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this relational operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1843</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this equality operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1844</td>
    <td width=92%>The %1s operand is constant, 'essentially signed' (%2s) and non-negative but will be implicitly converted to an unsigned type (%3s) in this conditional operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1850</td>
    <td width=92%>The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1851</td>
    <td width=92%>The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this bitwise operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1852</td>
    <td width=92%>The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this relational operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1853</td>
    <td width=92%>The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this equality operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1854</td>
    <td width=92%>The %1s operand is 'essentially unsigned' (%2s) but will be implicitly converted to a signed type (%3s) in this conditional operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-1860</td>
    <td width=92%>The operands of this arithmetic operator are of different 'essential signedness' but will generate a result of type 'signed int'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1861</td>
    <td width=92%>The operands of this bitwise operator are of different 'essential signedness' but will generate a result of type 'signed int'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1862</td>
    <td width=92%>The operands of this relational operator are of different 'essential signedness' but will both be promoted to 'signed int' for comparison.</td>
  </tr>
  <tr>
    <td width=8%>qac-1863</td>
    <td width=92%>The operands of this equality operator are of different 'essential signedness' but will both be promoted to 'signed int' for comparison.</td>
  </tr>
  <tr>
    <td width=8%>qac-1864</td>
    <td width=92%>The 2nd and 3rd operands of this conditional operator are of different 'essential signedness'. The result will be in the promoted type 'signed int'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1880</td>
    <td width=92%>The operands of this relational operator are expressions of different 'essential type' categories (%1s and %2s).</td>
  </tr>
  <tr>
    <td width=8%>qac-1881</td>
    <td width=92%>The operands of this equality operator are expressions of different 'essential type' categories (%1s and %2s).</td>
  </tr>
  <tr>
    <td width=8%>qac-1882</td>
    <td width=92%>The 2nd and 3rd operands of this conditional operator are expressions of different 'essential type' categories (%1s and %2s).</td>
  </tr>
  <tr>
    <td width=8%>qac-2100</td>
    <td width=92%>Integral promotion : unsigned char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2101</td>
    <td width=92%>Integral promotion : unsigned short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2102</td>
    <td width=92%>Integral promotion : unsigned char promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2103</td>
    <td width=92%>Integral promotion : unsigned short promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2104</td>
    <td width=92%>Integral promotion : signed char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2105</td>
    <td width=92%>Integral promotion : signed short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2106</td>
    <td width=92%>Integral promotion : plain char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2107</td>
    <td width=92%>Integral promotion : plain char promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2109</td>
    <td width=92%>Integral promotion : _Bool promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2110</td>
    <td width=92%>Default argument promotion : unsigned char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2111</td>
    <td width=92%>Default argument promotion : unsigned short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2112</td>
    <td width=92%>Default argument promotion : unsigned char promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2113</td>
    <td width=92%>Default argument promotion : unsigned short promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2114</td>
    <td width=92%>Default argument promotion : signed char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2115</td>
    <td width=92%>Default argument promotion : signed short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2116</td>
    <td width=92%>Default argument promotion : plain char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2117</td>
    <td width=92%>Default argument promotion : plain char promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2118</td>
    <td width=92%>Default argument promotion : float promoted to double.</td>
  </tr>
  <tr>
    <td width=8%>qac-2119</td>
    <td width=92%>Default argument promotion : _Bool promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2120</td>
    <td width=92%>Integral promotion : unsigned bit-field promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2122</td>
    <td width=92%>Integral promotion : unsigned bit-field promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2124</td>
    <td width=92%>Integral promotion : signed bit-field promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2130</td>
    <td width=92%>Default argument promotion : unsigned bit-field promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2132</td>
    <td width=92%>Default argument promotion : unsigned bit-field promoted to unsigned int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2134</td>
    <td width=92%>Default argument promotion : signed bit-field promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-4401</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4402</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4403</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4404</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4405</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4410</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4412</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4413</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4414</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4415</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4420</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4421</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4422</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to a different enum type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4423</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4424</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4425</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4430</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4431</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4432</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4434</td>
    <td width=92%>A non-constant expression of 'essentially signed' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4435</td>
    <td width=92%>A non-constant expression of 'essentially signed' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4436</td>
    <td width=92%>A constant expression of 'essentially signed' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4437</td>
    <td width=92%>A constant expression of 'essentially signed' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4440</td>
    <td width=92%>An expression of 'essentially unsigned' type (%1s) is being converted to Boolean type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4441</td>
    <td width=92%>An expression of 'essentially unsigned' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4442</td>
    <td width=92%>An expression of 'essentially unsigned' type (%1s) is being converted to enum type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4443</td>
    <td width=92%>A non-constant expression of 'essentially unsigned' type (%1s) is being converted to a wider signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4445</td>
    <td width=92%>An expression of 'essentially unsigned' type (%1s) is being converted to floating type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4446</td>
    <td width=92%>A non-constant expression of 'essentially unsigned' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4447</td>
    <td width=92%>A constant expression of 'essentially unsigned' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4460</td>
    <td width=92%>A non-constant expression of 'essentially signed' type (%1s) is being converted to narrower signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4461</td>
    <td width=92%>A non-constant expression of 'essentially unsigned' type (%1s) is being converted to narrower unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4463</td>
    <td width=92%>A constant expression of 'essentially signed' type (%1s) is being converted to narrower signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4464</td>
    <td width=92%>A constant expression of 'essentially unsigned' type (%1s) is being converted to narrower unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4470</td>
    <td width=92%>A non-constant expression of 'essentially signed' type (%1s) is being passed to a function parameter of wider signed type, '%2s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4471</td>
    <td width=92%>A non-constant expression of 'essentially unsigned' type (%1s) is being passed to a function parameter of wider unsigned type, '%2s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4480</td>
    <td width=92%>A non-constant expression of 'essentially signed' type (%1s) is being returned from a function defined with a wider signed return type, '%2s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-4481</td>
    <td width=92%>A non-constant expression of 'essentially unsigned' type (%1s) is being returned from a function defined with a wider unsigned return type, '%2s'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT04</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Enforce limits on integer values originating from tainted sources</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2794</td>
    <td width=92%>Possible: Tainted right hand operand of shift operator is negative or too large.</td>
  </tr>
  <tr>
    <td width=8%>qac-2804</td>
    <td width=92%>Possible: Overflow in signed arithmetic tainted operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2854</td>
    <td width=92%>Possible: Implicit conversion of a tainted expression to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2859</td>
    <td width=92%>Possible: Casting a tainted expression to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2864</td>
    <td width=92%>Possible: Implementation-defined value resulting from left shift operation on tainted expression of signed type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2894</td>
    <td width=92%>Possible: Negative tainted value implicitly converted to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2899</td>
    <td width=92%>Possible: Negative tainted value cast to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2904</td>
    <td width=92%>Possible: Positive integer tainted value truncated by implicit conversion to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2909</td>
    <td width=92%>Possible: Positive integer tainted value truncated by cast to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2914</td>
    <td width=92%>Possible: Wraparound in unsigned arithmetic tainted operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2924</td>
    <td width=92%>Possible: Left shift operation on tainted expression of unsigned type results in loss of high order bits.</td>
  </tr>
  <tr>
    <td width=8%>qac-2944</td>
    <td width=92%>Possible: Result of implicit conversion of a tainted expression is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2949</td>
    <td width=92%>Possible: Result of cast of a tainted expression is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2954</td>
    <td width=92%>Possible: Negative tainted value used in array subscript or pointer arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2956</td>
    <td width=92%>Definite: Using object '%s' with tainted value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2959</td>
    <td width=92%>Possible: Using object '%s' with tainted value.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT05</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not use input functions to convert character data if they cannot handle all possible inputs</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5005</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT07</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use only explicitly signed or unsigned char type for numeric values</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1292</td>
    <td width=92%>An integer constant of 'essentially signed' type is being converted to type char on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-1293</td>
    <td width=92%>An integer constant of 'essentially unsigned' type is being converted to type char on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4401</td>
    <td width=92%>An expression of 'essentially Boolean' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4421</td>
    <td width=92%>An expression of 'essentially enum' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4431</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4441</td>
    <td width=92%>An expression of 'essentially unsigned' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4451</td>
    <td width=92%>An expression of 'essentially floating' type (%1s) is being converted to character type, '%2s' on assignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT08</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Verify that all integer values are in range</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2800</td>
    <td width=92%>Constant: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2801</td>
    <td width=92%>Definite: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2802</td>
    <td width=92%>Apparent: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2803</td>
    <td width=92%>Suspicious: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2910</td>
    <td width=92%>Constant: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2911</td>
    <td width=92%>Definite: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2912</td>
    <td width=92%>Apparent: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2913</td>
    <td width=92%>Suspicious: Wraparound in unsigned arithmetic operation.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT09</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Ensure enumeration constants map to unique values</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0724</td>
    <td width=92%>The value of this implicitly-specified enumeration constant is not unique.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT10</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not assume a positive remainder when using the % operator</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3103</td>
    <td width=92%>Result of signed division or remainder operation may be implementation defined.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT12</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not make assumptions about the type of a plain int bit-field when used in an expression</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0634</td>
    <td width=92%>[I] Bit-field %1s in %2s has not been declared explicitly as unsigned or signed.</td>
  </tr>
  <tr>
    <td width=8%>qac-0635</td>
    <td width=92%>[C99] Bit-field %1s in %2s has been declared with a type not explicitly supported.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT13</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use bitwise operators only on unsigned operands</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4532</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being used as the %2s operand of this bitwise operator (%3s).</td>
  </tr>
  <tr>
    <td width=8%>qac-4533</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
  </tr>
  <tr>
    <td width=8%>qac-4534</td>
    <td width=92%>An expression of 'essentially signed' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
  </tr>
  <tr>
    <td width=8%>qac-4543</td>
    <td width=92%>A non-negative constant expression of 'essentially signed' type (%1s) is being used as the left-hand operand of this shift operator (%2s).</td>
  </tr>
  <tr>
    <td width=8%>qac-4544</td>
    <td width=92%>A non-negative constant expression of 'essentially signed' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT16</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not make assumptions about representation of signed integers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2940</td>
    <td width=92%>Constant: Result of implicit conversion is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2941</td>
    <td width=92%>Definite: Result of implicit conversion is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2942</td>
    <td width=92%>Apparent: Result of implicit conversion is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2943</td>
    <td width=92%>Suspicious: Result of implicit conversion is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2945</td>
    <td width=92%>Constant: Result of cast is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2946</td>
    <td width=92%>Definite: Result of cast is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2947</td>
    <td width=92%>Apparent: Result of cast is only representable in a two's complement implementation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2948</td>
    <td width=92%>Suspicious: Result of cast is only representable in a two's complement implementation.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT18</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Evaluate integer expressions in a larger size before comparing or assigning to that size</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1890</td>
    <td width=92%>A composite expression of 'essentially signed' type (%1s) is being implicitly converted to a wider signed type, '%2s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1891</td>
    <td width=92%>A composite expression of 'essentially unsigned' type (%1s) is being implicitly converted to a wider unsigned type, '%2s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1892</td>
    <td width=92%>A composite expression of 'essentially floating' type (%1s) is being implicitly converted to a wider floating type, '%2s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1893</td>
    <td width=92%>The 2nd and 3rd operands of this conditional operator are both 'essentially signed' ('%1s' and '%2s') but one is a composite expression of a narrower type than the other.</td>
  </tr>
  <tr>
    <td width=8%>qac-1894</td>
    <td width=92%>The 2nd and 3rd operands of this conditional operator are both 'essentially unsigned' ('%1s' and '%2s') but one is a composite expression of a narrower type than the other.</td>
  </tr>
  <tr>
    <td width=8%>qac-1895</td>
    <td width=92%>The 2nd and 3rd operands of this conditional operator are both 'essentially floating' ('%1s' and '%2s') but one is a composite expression of a narrower type than the other.</td>
  </tr>
  <tr>
    <td width=8%>qac-4490</td>
    <td width=92%>A composite expression of 'essentially signed' type (%1s) is being converted to wider signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4491</td>
    <td width=92%>A composite expression of 'essentially unsigned' type (%1s) is being converted to wider unsigned type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4492</td>
    <td width=92%>A composite expression of 'essentially floating' type (%1s) is being converted to wider floating type, '%2s' on assignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT30</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure that unsigned integer operations do not wrap</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2910</td>
    <td width=92%>Constant: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2911</td>
    <td width=92%>Definite: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2912</td>
    <td width=92%>Apparent: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2913</td>
    <td width=92%>Suspicious: Wraparound in unsigned arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-3383</td>
    <td width=92%>Cannot identify wraparound guard for unsigned arithmetic expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-3384</td>
    <td width=92%>Cannot identify wraparound guard for dependent unsigned arithmetic expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-3385</td>
    <td width=92%>Cannot identify wraparound guard for sizeof-VLA expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-3386</td>
    <td width=92%>Cannot identify wraparound guard for dependent sizeof-VLA expression.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT31</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure that integer conversions do not result in lost or misinterpreted data</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2850</td>
    <td width=92%>Constant: Implicit conversion to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2851</td>
    <td width=92%>Definite: Implicit conversion to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2852</td>
    <td width=92%>Apparent: Implicit conversion to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2853</td>
    <td width=92%>Suspicious: Implicit conversion to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2855</td>
    <td width=92%>Constant: Casting to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2856</td>
    <td width=92%>Definite: Casting to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2857</td>
    <td width=92%>Apparent: Casting to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2858</td>
    <td width=92%>Suspicious: Casting to a signed integer type of insufficient size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2890</td>
    <td width=92%>Constant: Negative value implicitly converted to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2891</td>
    <td width=92%>Definite: Negative value implicitly converted to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2892</td>
    <td width=92%>Apparent: Negative value implicitly converted to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2893</td>
    <td width=92%>Suspicious: Negative value implicitly converted to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2895</td>
    <td width=92%>Constant: Negative value cast to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2896</td>
    <td width=92%>Definite: Negative value cast to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2897</td>
    <td width=92%>Apparent: Negative value cast to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2898</td>
    <td width=92%>Suspicious: Negative value cast to an unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2900</td>
    <td width=92%>Constant: Positive integer value truncated by implicit conversion to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2901</td>
    <td width=92%>Definite: Positive integer value truncated by implicit conversion to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2902</td>
    <td width=92%>Apparent: Positive integer value truncated by implicit conversion to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2903</td>
    <td width=92%>Suspicious: Positive integer value truncated by implicit conversion to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2905</td>
    <td width=92%>Constant: Positive integer value truncated by cast to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2906</td>
    <td width=92%>Definite: Positive integer value truncated by cast to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2907</td>
    <td width=92%>Apparent: Positive integer value truncated by cast to a smaller unsigned type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2908</td>
    <td width=92%>Suspicious: Positive integer value truncated by cast to a smaller unsigned type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT32</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure that operations on signed integers do not result in overflow</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2800</td>
    <td width=92%>Constant: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2801</td>
    <td width=92%>Definite: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2802</td>
    <td width=92%>Apparent: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2803</td>
    <td width=92%>Suspicious: Overflow in signed arithmetic operation.</td>
  </tr>
  <tr>
    <td width=8%>qac-2860</td>
    <td width=92%>Constant: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2861</td>
    <td width=92%>Definite: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2862</td>
    <td width=92%>Apparent: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2863</td>
    <td width=92%>Suspicious: Implementation-defined value resulting from left shift operation on expression of signed type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT33</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure that division and remainder operations do not result in divide-by-zero errors</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2830</td>
    <td width=92%>Constant: Division by zero.</td>
  </tr>
  <tr>
    <td width=8%>qac-2831</td>
    <td width=92%>Definite: Division by zero.</td>
  </tr>
  <tr>
    <td width=8%>qac-2832</td>
    <td width=92%>Apparent: Division by zero.</td>
  </tr>
  <tr>
    <td width=8%>qac-2833</td>
    <td width=92%>Suspicious: Division by zero.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT34</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0499</td>
    <td width=92%>Right operand of shift operator is greater than or equal to the width of the essential type of the left operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-2790</td>
    <td width=92%>Constant: Right hand operand of shift operator is negative or too large.</td>
  </tr>
  <tr>
    <td width=8%>qac-2791</td>
    <td width=92%>Definite: Right hand operand of shift operator is negative or too large.</td>
  </tr>
  <tr>
    <td width=8%>qac-2792</td>
    <td width=92%>Apparent: Right hand operand of shift operator is negative or too large.</td>
  </tr>
  <tr>
    <td width=8%>qac-2793</td>
    <td width=92%>Suspicious: Right hand operand of shift operator is negative or too large.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT35</td>
    <td width=2%>Rule</td>
    <td width=40%>Use correct integer precisions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0582</td>
    <td width=92%>[I] Multiplying the size of an integer by CHAR_BIT will include padding bits in the result.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>INT36</td>
    <td width=2%>Rule</td>
    <td width=40%>Converting a pointer to integer or integer to pointer</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0303</td>
    <td width=92%>[I] Cast between a pointer to volatile object and an integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0305</td>
    <td width=92%>[I] Cast between a pointer to function and an integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0306</td>
    <td width=92%>[I] Cast between a pointer to object and an integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0309</td>
    <td width=92%>[U] Integral type is not large enough to hold a pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-0324</td>
    <td width=92%>[u] Cast between a pointer to incomplete type and an integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0326</td>
    <td width=92%>[I] Cast between a pointer to void and an integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0360</td>
    <td width=92%>An expression of pointer type is being converted to type _Bool on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-0361</td>
    <td width=92%>An expression of pointer type is being cast to type _Bool.</td>
  </tr>
  <tr>
    <td width=8%>qac-0362</td>
    <td width=92%>An expression of essentially Boolean type is being cast to a pointer.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM02</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Immediately cast the result of a memory allocation function call into a pointer to the allocated type</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0695</td>
    <td width=92%>Type given in sizeof is not compatible with the pointed to type used to cast malloc.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM03</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Clear sensitive information stored in reusable resources</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5010</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM05</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Avoid large stack allocations</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1051</td>
    <td width=92%>[C99] A variable length array has been declared.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1520</td>
    <td width=92%>Functions are indirectly recursive.</td>
  </tr>
  <tr>
    <td width=8%>qac-3670</td>
    <td width=92%>Recursive call to function containing this call.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not access freed memory</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4866</td>
    <td width=92%>Definite: Memory is used after free.</td>
  </tr>
  <tr>
    <td width=8%>qac-4867</td>
    <td width=92%>Apparent: Memory is used after free.</td>
  </tr>
  <tr>
    <td width=8%>qac-4868</td>
    <td width=92%>Suspicious: Memory is used after free.</td>
  </tr>
  <tr>
    <td width=8%>qac-4871</td>
    <td width=92%>Definite: Zero size has been passed to realloc, malloc or calloc.</td>
  </tr>
  <tr>
    <td width=8%>qac-4872</td>
    <td width=92%>Apparent: Zero size has been passed to realloc, malloc or calloc.</td>
  </tr>
  <tr>
    <td width=8%>qac-4873</td>
    <td width=92%>Suspicious: Zero size has been passed to realloc, malloc or calloc.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM31</td>
    <td width=2%>Rule</td>
    <td width=40%>Free dynamically allocated memory when no longer needed</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2706</td>
    <td width=92%>Definite: Allocated memory is not deallocated.</td>
  </tr>
  <tr>
    <td width=8%>qac-2707</td>
    <td width=92%>Apparent: Allocated memory is not deallocated.</td>
  </tr>
  <tr>
    <td width=8%>qac-2708</td>
    <td width=92%>Suspicious: Allocated memory is not deallocated.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM33</td>
    <td width=2%>Rule</td>
    <td width=40%>Allocate and copy structures containing a flexible array member dynamically</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1061</td>
    <td width=92%>[C] Structure '%1s' with flexible array member '%2s' cannot be used in the declaration of structure member '%3s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1062</td>
    <td width=92%>[C] Structure '%1s' with flexible array member '%2s' cannot be used in the declaration of array elements.</td>
  </tr>
  <tr>
    <td width=8%>qac-1063</td>
    <td width=92%>[C99] '%s' is an automatically-allocated object of a type declared with a flexible array member.</td>
  </tr>
  <tr>
    <td width=8%>qac-1064</td>
    <td width=92%>[C99] '%s' is a statically-allocated object of a type declared with a flexible array member.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM34</td>
    <td width=2%>Rule</td>
    <td width=40%>Only free memory allocated dynamically</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2721</td>
    <td width=92%>Definite: Deallocation of non dynamic memory.</td>
  </tr>
  <tr>
    <td width=8%>qac-2722</td>
    <td width=92%>Apparent: Deallocation of non dynamic memory.</td>
  </tr>
  <tr>
    <td width=8%>qac-2723</td>
    <td width=92%>Suspicious: Deallocation of non dynamic memory.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM35</td>
    <td width=2%>Rule</td>
    <td width=40%>Allocate sufficient memory for an object</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0696</td>
    <td width=92%>The size of the allocated memory block is smaller than the size of the object type addressed by the pointer cast.</td>
  </tr>
  <tr>
    <td width=8%>qac-0701</td>
    <td width=92%>Argument for memory size does not refer to 'sizeof (%1s)'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1069</td>
    <td width=92%>[C99] Taking sizeof a struct with a flexible array member without adding the array size.</td>
  </tr>
  <tr>
    <td width=8%>qac-1071</td>
    <td width=92%>[C99] Taking sizeof a struct with a flexible array member without explicitly adding the array size in terms of element sizes.</td>
  </tr>
  <tr>
    <td width=8%>qac-1073</td>
    <td width=92%>[C99] Taking sizeof a struct with a flexible array member while adding an array size based on the wrong element type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2840</td>
    <td width=92%>Constant: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2841</td>
    <td width=92%>Definite: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2842</td>
    <td width=92%>Apparent: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2843</td>
    <td width=92%>Suspicious: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2935</td>
    <td width=92%>Constant: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2936</td>
    <td width=92%>Definite: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2937</td>
    <td width=92%>Apparent: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2938</td>
    <td width=92%>Suspicious: Dereference of an invalid char pointer value.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MEM36</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not modify the alignment of objects by calling realloc()</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5027</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC01</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Strive for logical completeness</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2000</td>
    <td width=92%>No 'else' clause exists for this 'if' statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-2002</td>
    <td width=92%>No 'default' label found in this 'switch' statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-2004</td>
    <td width=92%>No concluding 'else' exists in this 'if'-'else'-'if' statement.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC04</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use comments consistently and in a readable fashion</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3108</td>
    <td width=92%>Nested comments are not recognized in the ISO standard.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC07</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Detect and remove dead code</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>rcma-1501</td>
    <td width=92%>The function '%1s' is declared but is not used within this project.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1503</td>
    <td width=92%>The function '%1s' is defined but is not used within this project.</td>
  </tr>
  <tr>
    <td width=8%>qac-2008</td>
    <td width=92%>Code statements precede the first label in this 'switch' construct.</td>
  </tr>
  <tr>
    <td width=8%>qac-2877</td>
    <td width=92%>This loop will never be executed more than once.</td>
  </tr>
  <tr>
    <td width=8%>qac-2880</td>
    <td width=92%>This code is unreachable.</td>
  </tr>
  <tr>
    <td width=8%>qac-2881</td>
    <td width=92%>The code in this 'default' clause is unreachable.</td>
  </tr>
  <tr>
    <td width=8%>qac-2882</td>
    <td width=92%>This 'switch' statement will bypass the initialization of local variables.</td>
  </tr>
  <tr>
    <td width=8%>qac-2883</td>
    <td width=92%>This 'goto' statement will always bypass the initialization of local variables.</td>
  </tr>
  <tr>
    <td width=8%>qac-2980</td>
    <td width=92%>The value of this function parameter is never used before being modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-2981</td>
    <td width=92%>This initialization is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-2982</td>
    <td width=92%>This assignment is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-2983</td>
    <td width=92%>This assignment is redundant. The value of this object is never subsequently used.</td>
  </tr>
  <tr>
    <td width=8%>qac-2984</td>
    <td width=92%>This operation is redundant. The value of the result is always '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2985</td>
    <td width=92%>This operation is redundant. The value of the result is always that of the left-hand operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-2986</td>
    <td width=92%>This operation is redundant. The value of the result is always that of the right-hand operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-3202</td>
    <td width=92%>The label '%s:' is not used in this function and could be removed.</td>
  </tr>
  <tr>
    <td width=8%>qac-3203</td>
    <td width=92%>The variable '%s' is set but never used.</td>
  </tr>
  <tr>
    <td width=8%>qac-3205</td>
    <td width=92%>The identifier '%1s' is not used and could be removed.</td>
  </tr>
  <tr>
    <td width=8%>qac-3206</td>
    <td width=92%>The parameter '%s' is not used in this function.</td>
  </tr>
  <tr>
    <td width=8%>qac-3207</td>
    <td width=92%>File scope static, '%1s', is not used, and could be removed.</td>
  </tr>
  <tr>
    <td width=8%>qac-3210</td>
    <td width=92%>The global identifier '%1s' is declared here but is not used in this translation unit.</td>
  </tr>
  <tr>
    <td width=8%>qac-3219</td>
    <td width=92%>Static function '%1s()' is not used within this translation unit.</td>
  </tr>
  <tr>
    <td width=8%>qac-3229</td>
    <td width=92%>File scope static, '%1s', is written but never used.</td>
  </tr>
  <tr>
    <td width=8%>qac-3404</td>
    <td width=92%>Statement contains a redundant * operator at top level. *p++ means *(p++) not (*p)++.</td>
  </tr>
  <tr>
    <td width=8%>qac-3422</td>
    <td width=92%>Statement contains a redundant operator at top level.</td>
  </tr>
  <tr>
    <td width=8%>qac-3423</td>
    <td width=92%>Statement contains a redundant cast at top level.</td>
  </tr>
  <tr>
    <td width=8%>qac-3425</td>
    <td width=92%>One branch of this conditional operation is a redundant expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-3470</td>
    <td width=92%>The operand of 'sizeof' is not an expression which designates either an object or a type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC09</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Character encoding: Use subset of ASCII for safety</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0285</td>
    <td width=92%>[I] Character constant contains character which is not a member of the basic source character set.</td>
  </tr>
  <tr>
    <td width=8%>qac-0286</td>
    <td width=92%>[I] String literal contains character which is not a member of the basic source character set.</td>
  </tr>
  <tr>
    <td width=8%>qac-0287</td>
    <td width=92%>[I] Header name contains character which is not a member of the basic source character set.</td>
  </tr>
  <tr>
    <td width=8%>qac-0288</td>
    <td width=92%>[I] Source file '%s' has comments containing characters which are not members of the basic source character set.</td>
  </tr>
  <tr>
    <td width=8%>qac-0289</td>
    <td width=92%>[I] Source file '%s' has preprocessing tokens containing characters which are not members of the basic source character set.</td>
  </tr>
  <tr>
    <td width=8%>qac-0299</td>
    <td width=92%>[I] Source file '%s' includes #pragma directives containing characters which are not members of the basic source character set.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC12</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Detect and remove code that has no effect or is never executed</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3110</td>
    <td width=92%>The left-hand operand of this ',' has no side effects.</td>
  </tr>
  <tr>
    <td width=8%>qac-3112</td>
    <td width=92%>This statement has no side-effect - it can be removed.</td>
  </tr>
  <tr>
    <td width=8%>qac-3307</td>
    <td width=92%>The operand of 'sizeof' is an expression with implied side effects, but they will not be evaluated.</td>
  </tr>
  <tr>
    <td width=8%>qac-3404</td>
    <td width=92%>Statement contains a redundant * operator at top level. *p++ means *(p++) not (*p)++.</td>
  </tr>
  <tr>
    <td width=8%>qac-3426</td>
    <td width=92%>Right hand side of comma expression has no side effect and its value is not used.</td>
  </tr>
  <tr>
    <td width=8%>qac-3427</td>
    <td width=92%>Right hand side of logical operator has no side effect and its value is not used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC13</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Detect and remove unused values</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>rcma-1500</td>
    <td width=92%>The object '%1s' is declared but is not used within this project.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1502</td>
    <td width=92%>The object '%1s' is defined but is not used within this project.</td>
  </tr>
  <tr>
    <td width=8%>qac-2980</td>
    <td width=92%>The value of this function parameter is never used before being modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-2981</td>
    <td width=92%>This initialization is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-2982</td>
    <td width=92%>This assignment is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=8%>qac-2983</td>
    <td width=92%>This assignment is redundant. The value of this object is never subsequently used.</td>
  </tr>
  <tr>
    <td width=8%>qac-2984</td>
    <td width=92%>This operation is redundant. The value of the result is always '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-2985</td>
    <td width=92%>This operation is redundant. The value of the result is always that of the left-hand operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-2986</td>
    <td width=92%>This operation is redundant. The value of the result is always that of the right-hand operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-3203</td>
    <td width=92%>The variable '%s' is set but never used.</td>
  </tr>
  <tr>
    <td width=8%>qac-3205</td>
    <td width=92%>The identifier '%1s' is not used and could be removed.</td>
  </tr>
  <tr>
    <td width=8%>qac-3206</td>
    <td width=92%>The parameter '%s' is not used in this function.</td>
  </tr>
  <tr>
    <td width=8%>qac-3207</td>
    <td width=92%>File scope static, '%1s', is not used, and could be removed.</td>
  </tr>
  <tr>
    <td width=8%>qac-3229</td>
    <td width=92%>File scope static, '%1s', is written but never used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC14</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not introduce unnecessary platform dependencies</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0202</td>
    <td width=92%>[I] '-' character in '[]' conversion specification is implementation defined.</td>
  </tr>
  <tr>
    <td width=8%>qac-0240</td>
    <td width=92%>[I] This file contains the control-M character at the end of a line.</td>
  </tr>
  <tr>
    <td width=8%>qac-0241</td>
    <td width=92%>[I] This file contains the control-Z character - was this transferred from a PC?</td>
  </tr>
  <tr>
    <td width=8%>qac-0242</td>
    <td width=92%>[I] This file contains the control-M character in the middle of a line.</td>
  </tr>
  <tr>
    <td width=8%>qac-0243</td>
    <td width=92%>[I] Treating an invalid character as whitespace.</td>
  </tr>
  <tr>
    <td width=8%>qac-0246</td>
    <td width=92%>[E] Binary integer constants are a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-0284</td>
    <td width=92%>[I] Multiple character constants have implementation defined values.</td>
  </tr>
  <tr>
    <td width=8%>qac-0551</td>
    <td width=92%>[E] Cast may not operate on the left operand of the assignment operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-0581</td>
    <td width=92%>[I] Floating-point constant may be too small to be representable.</td>
  </tr>
  <tr>
    <td width=8%>qac-0601</td>
    <td width=92%>[E] Function 'main()' is not of type 'int (void)' or 'int (int, char *[])'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0633</td>
    <td width=92%>[E] Empty structures and unions are a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-0634</td>
    <td width=92%>[I] Bit-field %1s in %2s has not been declared explicitly as unsigned or signed.</td>
  </tr>
  <tr>
    <td width=8%>qac-0635</td>
    <td width=92%>[C99] Bit-field %1s in %2s has been declared with a type not explicitly supported.</td>
  </tr>
  <tr>
    <td width=8%>qac-0660</td>
    <td width=92%>[C11] Defining an unnamed member in a struct or union.</td>
  </tr>
  <tr>
    <td width=8%>qac-0662</td>
    <td width=92%>[C11] Accessing a member of an unnamed struct or union member.</td>
  </tr>
  <tr>
    <td width=8%>qac-0830</td>
    <td width=92%>[E] Unrecognized text encountered after a preprocessing directive.</td>
  </tr>
  <tr>
    <td width=8%>qac-0831</td>
    <td width=92%>[E] Use of '\\' in this '#include' line is a PC extension - this usage is non-portable.</td>
  </tr>
  <tr>
    <td width=8%>qac-0840</td>
    <td width=92%>[E] Extra tokens at end of #include directive.</td>
  </tr>
  <tr>
    <td width=8%>qac-0899</td>
    <td width=92%>[E] Unrecognized preprocessing directive has been ignored - assumed to be a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1001</td>
    <td width=92%>[E] '#include %s' is a VMS extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1002</td>
    <td width=92%>[E] '%s' is not a legal identifier in ISO C.</td>
  </tr>
  <tr>
    <td width=8%>qac-1003</td>
    <td width=92%>[E] '#%s' is a language extension for in-line assembler. All statements located between #asm and #endasm will be ignored.</td>
  </tr>
  <tr>
    <td width=8%>qac-1006</td>
    <td width=92%>[E] This in-line assembler construct is a language extension. The code has been ignored.</td>
  </tr>
  <tr>
    <td width=8%>qac-1008</td>
    <td width=92%>[E] '#%s' is not a legal ISO C preprocessing directive.</td>
  </tr>
  <tr>
    <td width=8%>qac-1012</td>
    <td width=92%>[E] Use of a C++ reference type ('type &') will be treated as a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1014</td>
    <td width=92%>[E] Non-standard type specifier - this will be treated as a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1015</td>
    <td width=92%>[E] '%s' is not a legal keyword in ISO C - this will be treated as a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1019</td>
    <td width=92%>[E] '@ address' is not supported in ISO C - this will be treated as a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1020</td>
    <td width=92%>[E] '__typeof__' is not supported in ISO C, and is treated as a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1021</td>
    <td width=92%>[E] A statement expression is not supported in ISO C, and is treated as a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1022</td>
    <td width=92%>[E] '__alignof__' is a language extension. It is mapped to the standard '_Alignof' operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-1026</td>
    <td width=92%>[E] The indicated @word construct has been ignored.</td>
  </tr>
  <tr>
    <td width=8%>qac-1028</td>
    <td width=92%>[E] Use of the sizeof operator in a preprocessing directive is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1029</td>
    <td width=92%>[E] Whitespace encountered between backslash and new-line has been ignored.</td>
  </tr>
  <tr>
    <td width=8%>qac-1034</td>
    <td width=92%>[E] Macro defined with named variable argument list. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1035</td>
    <td width=92%>[E] No macro arguments supplied for variable argument list. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1036</td>
    <td width=92%>[E] Comma before ## ignored in expansion of variadic macro. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1037</td>
    <td width=92%>[E] Arrays of length zero are a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1038</td>
    <td width=92%>[E] The sequence ", ##__VA_ARGS__" is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1041</td>
    <td width=92%>[E] Empty aggregate initializers are a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1042</td>
    <td width=92%>[E] Using I64 or UI64 as an integer constant suffix. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1043</td>
    <td width=92%>[E] Defining an anonymous union object. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1044</td>
    <td width=92%>[E] Defining an anonymous struct object. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1045</td>
    <td width=92%>[E] Use of the #include_next preprocessing directive is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1046</td>
    <td width=92%>[E] Function is being declared with default argument syntax. This is a language extension.</td>
  </tr>
  <tr>
    <td width=8%>qac-1434</td>
    <td width=92%>[I] This enum constant is not representable in a 16 bit integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-3664</td>
    <td width=92%>[E] Using a dot operator to access an individual bit is a language extension.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC15</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not depend on undefined behavior</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0160</td>
    <td width=92%>[U] Using unsupported conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0161</td>
    <td width=92%>[U] Unknown length modifier used with 'i' or 'd' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0162</td>
    <td width=92%>[U] Unknown length modifier used with 'o' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0163</td>
    <td width=92%>[U] Unknown length modifier used with 'u' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0164</td>
    <td width=92%>[U] Unknown length modifier used with 'x' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0165</td>
    <td width=92%>[U] Unknown length modifier used with 'X' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0166</td>
    <td width=92%>[U] Unknown length modifier used with 'f' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0167</td>
    <td width=92%>[U] Unknown length modifier used with 'e' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0168</td>
    <td width=92%>[U] Unknown length modifier used with 'E' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0169</td>
    <td width=92%>[U] Unknown length modifier used with 'g' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0170</td>
    <td width=92%>[U] Unknown length modifier used with 'G' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0171</td>
    <td width=92%>[U] Unknown length modifier used with 'c' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0172</td>
    <td width=92%>[U] Unknown length modifier used with '%%' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0173</td>
    <td width=92%>[U] Unknown length modifier used with 's' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0174</td>
    <td width=92%>[U] Unknown length modifier used with 'n' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0175</td>
    <td width=92%>[U] Unknown length modifier used with 'p' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0176</td>
    <td width=92%>[U] Incomplete conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0177</td>
    <td width=92%>[U] Field width of format conversion specifier exceeds 509 characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0178</td>
    <td width=92%>[U] Precision of format conversion specifier exceeds 509 characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0179</td>
    <td width=92%>[U] Argument type does not match conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0184</td>
    <td width=92%>[U] Insufficient arguments to satisfy conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0185</td>
    <td width=92%>[U] Call contains more arguments than conversion specifiers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0186</td>
    <td width=92%>[U] A call to this function must include at least one argument.</td>
  </tr>
  <tr>
    <td width=8%>qac-0190</td>
    <td width=92%>[U] Using unsupported conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0191</td>
    <td width=92%>[U] Unknown length modifier used with 'd/i/n' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0192</td>
    <td width=92%>[U] Unknown length modifier used with 'o' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0193</td>
    <td width=92%>[U] Unknown length modifier used with 'u' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0194</td>
    <td width=92%>[U] Unknown length modifier used with 'x/X' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0195</td>
    <td width=92%>[U] Unknown length modifier used with 'e/E/f/F/g/G' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0196</td>
    <td width=92%>[U] Unknown length modifier used with 's' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0197</td>
    <td width=92%>[U] Unknown length modifier used with 'p' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0198</td>
    <td width=92%>[U] Unknown length modifier used with '%%' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0199</td>
    <td width=92%>[U] Unknown length modifier used with '[' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0200</td>
    <td width=92%>[U] Unknown length modifier used with 'c' conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0201</td>
    <td width=92%>[U] Incomplete conversion specifier, number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0203</td>
    <td width=92%>[U] Value of character prior to '-' in '[]' is greater than following character.</td>
  </tr>
  <tr>
    <td width=8%>qac-0204</td>
    <td width=92%>[U] Field width of format conversion specifier exceeds 509 characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0206</td>
    <td width=92%>[U] Argument type does not match conversion specifier number %1s.</td>
  </tr>
  <tr>
    <td width=8%>qac-0207</td>
    <td width=92%>[U] 'scanf' expects address of objects being stored into.</td>
  </tr>
  <tr>
    <td width=8%>qac-0208</td>
    <td width=92%>[U] Same character occurs in scanset more than once.</td>
  </tr>
  <tr>
    <td width=8%>qac-0235</td>
    <td width=92%>[U] Unknown escape sequence.</td>
  </tr>
  <tr>
    <td width=8%>qac-0275</td>
    <td width=92%>[U] Floating value is out of range for conversion to destination type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0301</td>
    <td width=92%>[u] Cast between a pointer to object and a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0302</td>
    <td width=92%>[u] Cast between a pointer to function and a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0304</td>
    <td width=92%>[U] The address of an array declared 'register' may not be computed.</td>
  </tr>
  <tr>
    <td width=8%>qac-0307</td>
    <td width=92%>[u] Cast between a pointer to object and a pointer to function.</td>
  </tr>
  <tr>
    <td width=8%>qac-0309</td>
    <td width=92%>[U] Integral type is not large enough to hold a pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-0323</td>
    <td width=92%>[C] Cast between a pointer to incomplete type and a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0327</td>
    <td width=92%>[C] Cast between a pointer to void and a floating type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0337</td>
    <td width=92%>[U] String literal has undefined value. This may be a result of using '#' on \\.</td>
  </tr>
  <tr>
    <td width=8%>qac-0400</td>
    <td width=92%>[U] '%1s' is modified more than once between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0401</td>
    <td width=92%>[U] '%1s' may be modified more than once between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0402</td>
    <td width=92%>[U] '%1s' is modified and accessed between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0403</td>
    <td width=92%>[U] '%1s' may be modified and accessed between sequence points - evaluation order unspecified.</td>
  </tr>
  <tr>
    <td width=8%>qac-0475</td>
    <td width=92%>[u] Operand of 'sizeof' is an expression designating a bit-field.</td>
  </tr>
  <tr>
    <td width=8%>qac-0543</td>
    <td width=92%>[U] 'void' expressions have no value and may not be used in expressions.</td>
  </tr>
  <tr>
    <td width=8%>qac-0544</td>
    <td width=92%>[U] The value of an incomplete 'union' may not be used.</td>
  </tr>
  <tr>
    <td width=8%>qac-0545</td>
    <td width=92%>[U] The value of an incomplete 'struct' may not be used.</td>
  </tr>
  <tr>
    <td width=8%>qac-0602</td>
    <td width=92%>[U] The identifier '%s' is reserved for use by the library.</td>
  </tr>
  <tr>
    <td width=8%>qac-0603</td>
    <td width=92%>[U] The macro identifier '%s' is reserved.</td>
  </tr>
  <tr>
    <td width=8%>qac-0623</td>
    <td width=92%>[U] '%s' has incomplete type and no linkage - this is undefined.</td>
  </tr>
  <tr>
    <td width=8%>qac-0625</td>
    <td width=92%>[U] '%s' has been declared with both internal and external linkage - the behaviour is undefined.</td>
  </tr>
  <tr>
    <td width=8%>qac-0626</td>
    <td width=92%>[U] '%s' has different type to previous declaration (which is no longer in scope).</td>
  </tr>
  <tr>
    <td width=8%>qac-0630</td>
    <td width=92%>[U] More than one definition of '%s' (with external linkage).</td>
  </tr>
  <tr>
    <td width=8%>qac-0632</td>
    <td width=92%>[U] Tentative definition of '%s' with internal linkage cannot have unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0636</td>
    <td width=92%>[U] There are no named members in this 'struct' or 'union'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0654</td>
    <td width=92%>[U] Using 'const' or 'volatile' in a function return type is undefined.</td>
  </tr>
  <tr>
    <td width=8%>qac-0658</td>
    <td width=92%>[U] Parameter cannot have 'void' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0661</td>
    <td width=92%>[U] '%1s()' may not have a storage class specifier of '%2s' when declared at block scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-0667</td>
    <td width=92%>[U] '%s' is declared as a typedef and may not be redeclared as an object at an inner scope without an explicit type specifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-0668</td>
    <td width=92%>[U] '%s' is declared as a typedef and may not be redeclared as a member of a 'struct' or 'union' without an explicit type specifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-0672</td>
    <td width=92%>[U] The initializer for a 'struct', 'union' or array is not enclosed in braces.</td>
  </tr>
  <tr>
    <td width=8%>qac-0676</td>
    <td width=92%>[u] Array element is of function type. Arrays cannot be constructed from function types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0678</td>
    <td width=92%>[u] Array element is array of unknown size. Arrays cannot be constructed from incomplete types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0680</td>
    <td width=92%>[u] Array element is 'void' or an incomplete 'struct' or 'union'. Arrays cannot be constructed from incomplete types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0706</td>
    <td width=92%>[U] Label '%s' is not unique within this function.</td>
  </tr>
  <tr>
    <td width=8%>qac-0745</td>
    <td width=92%>[U] 'return;' found in '%s()', which has been defined with a non-'void' return type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0777</td>
    <td width=92%>[U] External identifier does not differ from other identifier(s) (e.g. '%1s') within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0779</td>
    <td width=92%>[U] Identifier does not differ from other identifier(s) (e.g. '%1s') within the specified number of significant characters.</td>
  </tr>
  <tr>
    <td width=8%>qac-0813</td>
    <td width=92%>[U] Using any of the characters ' " or /* in '#include <%s>' gives undefined behaviour.</td>
  </tr>
  <tr>
    <td width=8%>qac-0814</td>
    <td width=92%>[U] Using the characters ' or /* in '#include "%s"' gives undefined behaviour.</td>
  </tr>
  <tr>
    <td width=8%>qac-0821</td>
    <td width=92%>[C] '#include' does not identify a header or source file that can be processed.</td>
  </tr>
  <tr>
    <td width=8%>qac-0836</td>
    <td width=92%>[U] Definition of macro named 'defined'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0837</td>
    <td width=92%>[U] Use of '#undef' to remove the operator 'defined'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0848</td>
    <td width=92%>[U] Attempting to #undef '%s', which is a predefined macro name.</td>
  </tr>
  <tr>
    <td width=8%>qac-0853</td>
    <td width=92%>[U] Macro arguments contain a sequence of tokens that has the form of a preprocessing directive.</td>
  </tr>
  <tr>
    <td width=8%>qac-0854</td>
    <td width=92%>[U] Attempting to #define '%s', which is a predefined macro name.</td>
  </tr>
  <tr>
    <td width=8%>qac-0864</td>
    <td width=92%>[U] '#line' directive specifies line number which is not in the range 1 to 32767.</td>
  </tr>
  <tr>
    <td width=8%>qac-0865</td>
    <td width=92%>[U] '#line' directive is badly formed.</td>
  </tr>
  <tr>
    <td width=8%>qac-0867</td>
    <td width=92%>[U] '#line' has not been followed by a line number.</td>
  </tr>
  <tr>
    <td width=8%>qac-0872</td>
    <td width=92%>[U] Result of '##' operator is not a legal preprocessing token.</td>
  </tr>
  <tr>
    <td width=8%>qac-0874</td>
    <td width=92%>[U] Character string literal and wide character string literal are adjacent.</td>
  </tr>
  <tr>
    <td width=8%>qac-0885</td>
    <td width=92%>[U] The token 'defined' is generated in the expansion of this macro.</td>
  </tr>
  <tr>
    <td width=8%>qac-0887</td>
    <td width=92%>[U] Use of 'defined' must match either 'defined(identifier)' or 'defined identifier'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0888</td>
    <td width=92%>[U] 'defined' requires an identifier as an argument.</td>
  </tr>
  <tr>
    <td width=8%>qac-0914</td>
    <td width=92%>[U] Source file does not end with a newline character.</td>
  </tr>
  <tr>
    <td width=8%>qac-0915</td>
    <td width=92%>[U] Source file ends with a backslash character followed by a newline.</td>
  </tr>
  <tr>
    <td width=8%>qac-0942</td>
    <td width=92%>[U] A * can only be used to specify array size within function prototype scope.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1509</td>
    <td width=92%>'%1s' has external linkage and has multiple definitions.</td>
  </tr>
  <tr>
    <td width=8%>rcma-1510</td>
    <td width=92%>'%1s' has external linkage and has incompatible declarations.</td>
  </tr>
  <tr>
    <td width=8%>qac-3113</td>
    <td width=92%>[U] 'return' statement includes no expression but function '%s()' is implicitly of type 'int'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3114</td>
    <td width=92%>[U] Function '%s()' is implicitly of type 'int' but ends without returning a value.</td>
  </tr>
  <tr>
    <td width=8%>qac-3239</td>
    <td width=92%>[U] inline function '%1s' has external linkage, but is not defined within this translation unit.</td>
  </tr>
  <tr>
    <td width=8%>qac-3311</td>
    <td width=92%>[u] An earlier jump to this statement will bypass the initialization of local variables.</td>
  </tr>
  <tr>
    <td width=8%>qac-3312</td>
    <td width=92%>[u] This goto statement will jump into a previous block and bypass the initialization of local variables.</td>
  </tr>
  <tr>
    <td width=8%>qac-3319</td>
    <td width=92%>[U] Function called with number of arguments which differs from number of parameters in definition.</td>
  </tr>
  <tr>
    <td width=8%>qac-3437</td>
    <td width=92%>[u] '%1s' is only provided by the standard library as a macro, but is being used as a value here.</td>
  </tr>
  <tr>
    <td width=8%>qac-3438</td>
    <td width=92%>[U] #undef'ing the assert macro to call a function of that name causes undefined behaviour.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC17</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Finish every set of statements associated with a case label with a break statement</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2003</td>
    <td width=92%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC20</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not use a switch statement to transfer control into a complex block</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2019</td>
    <td width=92%>'Switch' label is located within a nested code block.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not use the rand() function for generating pseudorandom numbers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5022</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC32</td>
    <td width=2%>Rule</td>
    <td width=40%>Properly seed pseudorandom number generators</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5031</td>
    <td width=92%>PRNG is not seeded before usage.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC33</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not pass invalid data to the asctime() function</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5032</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC37</td>
    <td width=2%>Rule</td>
    <td width=40%>Ensure that control never reaches the end of a non-void function</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2888</td>
    <td width=92%>This function has been declared with a non-void 'return' type but ends with an implicit 'return ;' statement.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC38</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not treat a predefined identifier as an object if it might only be implemented as a macro</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3437</td>
    <td width=92%>[u] '%1s' is only provided by the standard library as a macro, but is being used as a value here.</td>
  </tr>
  <tr>
    <td width=8%>qac-3475</td>
    <td width=92%>[u] '%1s' is only provided by the standard library as a macro, but is being declared as a value here.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC39</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not call va_arg() on a va_list that has an indeterminate value</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3497</td>
    <td width=92%>[U] The va_list object '%1s' is both passed as an argument and accessed with va_arg.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC40</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not violate constraints</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0232</td>
    <td width=92%>[C] Value of hex escape sequence is not representable in type 'unsigned char'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0233</td>
    <td width=92%>[C] Value of octal escape sequence is not representable in type 'unsigned char'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0244</td>
    <td width=92%>[C] Value of character constant is not representable in type 'int'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0268</td>
    <td width=92%>[S] Comment open at end of translation unit.</td>
  </tr>
  <tr>
    <td width=8%>qac-0278</td>
    <td width=92%>[C] Overflow in signed arithmetic operation on constant operands.</td>
  </tr>
  <tr>
    <td width=8%>qac-0321</td>
    <td width=92%>[C] Declaration within 'for' statement defines an identifier '%1s' which is not an object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0322</td>
    <td width=92%>[C] Illegal storage class specifier used in 'for' statement declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-0338</td>
    <td width=92%>[C] Octal or hex escape sequence value is too large for 'unsigned char' or 'wchar_t' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0422</td>
    <td width=92%>[C] Function call contains fewer arguments than prototype specifies.</td>
  </tr>
  <tr>
    <td width=8%>qac-0423</td>
    <td width=92%>[C] Function call contains more arguments than prototype specifies.</td>
  </tr>
  <tr>
    <td width=8%>qac-0426</td>
    <td width=92%>[C] Called function has incomplete return type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0427</td>
    <td width=92%>[C] Object identifier used as if it were a function or a function pointer identifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-0429</td>
    <td width=92%>[C] Function argument is not of arithmetic type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0430</td>
    <td width=92%>[C] Function argument is not of compatible 'struct'/'union' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0431</td>
    <td width=92%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0432</td>
    <td width=92%>[C] Function argument is not of compatible pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0435</td>
    <td width=92%>[C] The 'struct'/'union' member '%s' does not exist.</td>
  </tr>
  <tr>
    <td width=8%>qac-0436</td>
    <td width=92%>[C] Left operand of '.' must be a 'struct' or 'union' object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0437</td>
    <td width=92%>[C] Left operand of '->' must be a pointer to a 'struct' or 'union' object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0446</td>
    <td width=92%>[C] Operand of ++/-- must have scalar (arithmetic or pointer) type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0447</td>
    <td width=92%>[C] Operand of ++/-- must be a modifiable object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0448</td>
    <td width=92%>[C] Operand of ++/-- must not be a pointer to an object of unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0449</td>
    <td width=92%>[C] Operand of ++/-- must not be a pointer to a function.</td>
  </tr>
  <tr>
    <td width=8%>qac-0451</td>
    <td width=92%>[C] Subscripting requires a pointer (or array lvalue).</td>
  </tr>
  <tr>
    <td width=8%>qac-0452</td>
    <td width=92%>[C] Cannot subscript a pointer to an object of unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0453</td>
    <td width=92%>[C] An array subscript must have integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0454</td>
    <td width=92%>[C] The address-of operator '&' cannot be applied to an object declared with 'register'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0456</td>
    <td width=92%>[C] This expression does not have an address - '&' may only be applied to an lvalue or a function designator.</td>
  </tr>
  <tr>
    <td width=8%>qac-0457</td>
    <td width=92%>[C] The address-of operator '&' cannot be applied to a bit-field.</td>
  </tr>
  <tr>
    <td width=8%>qac-0458</td>
    <td width=92%>[C] Indirection operator '*' requires operand of pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0460</td>
    <td width=92%>[C] The keyword static is used in the declaration of the index of an array which is not a function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0461</td>
    <td width=92%>[C] The keyword static is used in the declaration of an inner index of a multi-dimensional array.</td>
  </tr>
  <tr>
    <td width=8%>qac-0462</td>
    <td width=92%>[C] A type qualifier (const, volatile or restrict) is used in the declaration of the index of an array which is not a function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0463</td>
    <td width=92%>[C] A type qualifier (const, volatile or restrict) is used in the declaration of an inner index of a multi-dimensional array.</td>
  </tr>
  <tr>
    <td width=8%>qac-0466</td>
    <td width=92%>[C] Unary '+' requires arithmetic operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-0467</td>
    <td width=92%>[C] Operand of '!' must have scalar (arithmetic or pointer) type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0468</td>
    <td width=92%>[C] Unary '-' requires arithmetic operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-0469</td>
    <td width=92%>[C] Bitwise not '~' requires integral operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-0476</td>
    <td width=92%>[C] 'sizeof' cannot be applied to a bit-field.</td>
  </tr>
  <tr>
    <td width=8%>qac-0477</td>
    <td width=92%>[C] 'sizeof' cannot be applied to a function.</td>
  </tr>
  <tr>
    <td width=8%>qac-0478</td>
    <td width=92%>[C] 'sizeof' cannot be applied to an object of unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0481</td>
    <td width=92%>[C] Only scalar expressions may be cast to other types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0482</td>
    <td width=92%>[C] Expressions may only be cast to 'void' or scalar types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0483</td>
    <td width=92%>[C] A pointer to an object of unknown size cannot be the operand of an addition operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-0484</td>
    <td width=92%>[C] A pointer to an object of unknown size cannot be the operand of a subtraction operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-0485</td>
    <td width=92%>[C] Only integral expressions may be added to pointers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0486</td>
    <td width=92%>[C] Only integral expressions and compatible pointers may be subtracted from pointers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0487</td>
    <td width=92%>[C] If two pointers are subtracted, they must be pointers that address compatible types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0493</td>
    <td width=92%>[C] Type of left operand is not compatible with this operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-0494</td>
    <td width=92%>[C] Type of right operand is not compatible with this operator.</td>
  </tr>
  <tr>
    <td width=8%>qac-0495</td>
    <td width=92%>[C] Left operand of '%', '<<', '>>', '&', '^' or '|' must have integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0496</td>
    <td width=92%>[C] Right operand of '%', '<<', '>>', '&', '^' or '|' must have integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0513</td>
    <td width=92%>[C] Relational operator used to compare pointers to incompatible types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0514</td>
    <td width=92%>[C] Relational operator used to compare a pointer with an incompatible operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-0515</td>
    <td width=92%>[C] Equality operator used to compare a pointer with an incompatible operand.</td>
  </tr>
  <tr>
    <td width=8%>qac-0536</td>
    <td width=92%>[C] First operand of '&&', '||' or '?' must have scalar (arithmetic or pointer) type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0537</td>
    <td width=92%>[C] Second operand of '&&' or '||' must have scalar (arithmetic or pointer) type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0540</td>
    <td width=92%>[C] 2nd and 3rd operands of conditional operator '?' must have compatible types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0541</td>
    <td width=92%>[C] Argument no. %s does not have object type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0542</td>
    <td width=92%>[C] Controlling expression must have scalar (arithmetic or pointer) type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0546</td>
    <td width=92%>[C] 'enum %s' has unknown content. Use of an enum tag with undefined content is not permitted.</td>
  </tr>
  <tr>
    <td width=8%>qac-0547</td>
    <td width=92%>[C] This declaration of tag '%s' conflicts with a previous declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-0550</td>
    <td width=92%>[C] Left operand of '+=' or '-=' is a pointer to an object of unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0554</td>
    <td width=92%>[C] 'static %s()' has been declared and called but no definition has been given.</td>
  </tr>
  <tr>
    <td width=8%>qac-0555</td>
    <td width=92%>[C] Invalid assignment to object of void type or array type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0556</td>
    <td width=92%>[C] Left operand of assignment must be a modifiable object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0557</td>
    <td width=92%>[C] Right operand of assignment is not of arithmetic type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0558</td>
    <td width=92%>[C] Right operand of '+=' or '-=' must have integral type when left operand is a pointer.</td>
  </tr>
  <tr>
    <td width=8%>qac-0559</td>
    <td width=92%>[C] Right operand of '<<=', '>>=', '&=', '|=', '^=' or '%=' must have integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0560</td>
    <td width=92%>[C] Left operand of '<<=', '>>=', '&=', '|=', '^=' or '%=' must have integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0561</td>
    <td width=92%>[C] Right operand of assignment is not of compatible 'struct'/'union' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0562</td>
    <td width=92%>[C] Right operand of assignment points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0563</td>
    <td width=92%>[C] Right operand of assignment is not of compatible pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0564</td>
    <td width=92%>[C] Left operand of assignment must be an lvalue (it must designate an object).</td>
  </tr>
  <tr>
    <td width=8%>qac-0565</td>
    <td width=92%>[C] Left operand of '+=' or '-=' must be of arithmetic or pointer to object type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0580</td>
    <td width=92%>[C] Constant is too large to be representable.</td>
  </tr>
  <tr>
    <td width=8%>qac-0588</td>
    <td width=92%>[C] Width of bit-field must be an integral constant expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-0589</td>
    <td width=92%>[C] Enumeration constant must be an integral constant expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-0590</td>
    <td width=92%>[C] Array bound must be an integral constant expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-0591</td>
    <td width=92%>[C] A 'case' label must be an integral constant expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-0605</td>
    <td width=92%>[C] A declaration must declare a tag or an identifier.</td>
  </tr>
  <tr>
    <td width=8%>qac-0616</td>
    <td width=92%>[C] Illegal combination of type specifiers or storage class specifiers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0619</td>
    <td width=92%>[C] The identifier '%1s' has already been defined in the current scope within the ordinary identifier namespace.</td>
  </tr>
  <tr>
    <td width=8%>qac-0620</td>
    <td width=92%>[C] Cannot initialize '%s' because it has unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0621</td>
    <td width=92%>[C] The struct/union '%s' cannot be initialized because it has unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0622</td>
    <td width=92%>[C] The identifier '%s' has been declared both with and without linkage in the same scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-0627</td>
    <td width=92%>[C] '%s' has different type to previous declaration in the same scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-0628</td>
    <td width=92%>[C] '%s' has different type to previous declaration at wider scope.</td>
  </tr>
  <tr>
    <td width=8%>qac-0629</td>
    <td width=92%>[C] More than one definition of '%s' (with internal linkage).</td>
  </tr>
  <tr>
    <td width=8%>qac-0631</td>
    <td width=92%>[C] More than one declaration of '%s' (with no linkage).</td>
  </tr>
  <tr>
    <td width=8%>qac-0638</td>
    <td width=92%>[C] Duplicate member name '%s' in 'struct' or 'union'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0640</td>
    <td width=92%>[C] '%s' in 'struct' or 'union' type may not have 'void' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0641</td>
    <td width=92%>[C] '%s' in 'struct' or 'union' type may not have function type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0642</td>
    <td width=92%>[C] '%s' in 'struct' or 'union' type may not be an array of unknown size.</td>
  </tr>
  <tr>
    <td width=8%>qac-0643</td>
    <td width=92%>[C] '%s' in 'struct' or 'union' type may not be a 'struct' or 'union' with unknown content.</td>
  </tr>
  <tr>
    <td width=8%>qac-0644</td>
    <td width=92%>[C] Width of bit-field must be no bigger than the width of an 'int'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0645</td>
    <td width=92%>[C] A zero width bit-field cannot be given a name.</td>
  </tr>
  <tr>
    <td width=8%>qac-0646</td>
    <td width=92%>[C] Enumeration constants must have values representable as 'int's.</td>
  </tr>
  <tr>
    <td width=8%>qac-0649</td>
    <td width=92%>[C] K&R style declaration of parameters is not legal after a function header that includes a parameter list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0650</td>
    <td width=92%>[C] Illegal storage class specifier on named function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0651</td>
    <td width=92%>[C] Missing type specifiers in function declaration.</td>
  </tr>
  <tr>
    <td width=8%>qac-0653</td>
    <td width=92%>[C] Duplicate definition of 'struct', 'union' or 'enum' tag '%s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0655</td>
    <td width=92%>[C] Illegal storage class specifier on unnamed function parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0656</td>
    <td width=92%>[C] Function return type cannot be function or array type, or an incomplete struct/union (for function definition).</td>
  </tr>
  <tr>
    <td width=8%>qac-0657</td>
    <td width=92%>[C] Unnamed parameter specified in function definition.</td>
  </tr>
  <tr>
    <td width=8%>qac-0659</td>
    <td width=92%>[C] The identifier '%s' was not given in the parameter list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0664</td>
    <td width=92%>[C] Parameter specified with type 'void'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0665</td>
    <td width=92%>[C] Two parameters have been declared with the same name '%1s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0669</td>
    <td width=92%>[C] The restrict qualifier can only be applied to pointer types derived from object or incomplete types.</td>
  </tr>
  <tr>
    <td width=8%>qac-0671</td>
    <td width=92%>[C] Initializer for object of arithmetic type is not of arithmetic type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0673</td>
    <td width=92%>[C] Initializer points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0674</td>
    <td width=92%>[C] Initializer for pointer is of incompatible type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0675</td>
    <td width=92%>[C] Initializer is not of compatible 'struct'/'union' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0677</td>
    <td width=92%>[C] Array size is negative, or unrepresentable.</td>
  </tr>
  <tr>
    <td width=8%>qac-0682</td>
    <td width=92%>[C] Initializer for object of a character type is a string literal.</td>
  </tr>
  <tr>
    <td width=8%>qac-0683</td>
    <td width=92%>[C] Initializer for object of a character type is a wide string literal.</td>
  </tr>
  <tr>
    <td width=8%>qac-0684</td>
    <td width=92%>[C] Too many initializers.</td>
  </tr>
  <tr>
    <td width=8%>qac-0685</td>
    <td width=92%>[C] Initializer for any object with static storage duration must be a constant expression.</td>
  </tr>
  <tr>
    <td width=8%>qac-0690</td>
    <td width=92%>[C] String literal contains too many characters to initialize object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0698</td>
    <td width=92%>[C] String literal used to initialize an object of incompatible type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0699</td>
    <td width=92%>[C] String literal used to initialize a pointer of incompatible type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0708</td>
    <td width=92%>[C] No definition found for the label '%s' in this function.</td>
  </tr>
  <tr>
    <td width=8%>qac-0709</td>
    <td width=92%>[C] Initialization of locally declared 'extern %s' is illegal.</td>
  </tr>
  <tr>
    <td width=8%>qac-0736</td>
    <td width=92%>[C] 'case' label does not have unique value within this 'switch' statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-0737</td>
    <td width=92%>[C] More than one 'default' label found in 'switch' statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-0738</td>
    <td width=92%>[C] Controlling expression in a 'switch' statement must have integral type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0746</td>
    <td width=92%>[C] 'return exp;' found in '%s()' whose return type is 'void'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0747</td>
    <td width=92%>[C] 'return exp;' found in '%s()' whose return type is qualified 'void'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0755</td>
    <td width=92%>[C] 'return' expression is not of arithmetic type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0756</td>
    <td width=92%>[C] 'return' expression is not of compatible 'struct'/'union' type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0757</td>
    <td width=92%>[C] 'return' expression points to a more heavily qualified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0758</td>
    <td width=92%>[C] 'return' expression is not of compatible pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0766</td>
    <td width=92%>[C] 'continue' statement found outside an iteration statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-0767</td>
    <td width=92%>[C] 'break' statement found outside a 'switch' or iteration statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-0768</td>
    <td width=92%>[C] 'case' or 'default' found outside a 'switch' statement.</td>
  </tr>
  <tr>
    <td width=8%>qac-0774</td>
    <td width=92%>[C] 'auto' may not be specified on global declaration of '%s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0775</td>
    <td width=92%>[C] 'register' may not be specified on global declaration of '%s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0801</td>
    <td width=92%>[C] The '##' operator may not be the first token in a macro replacement list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0802</td>
    <td width=92%>[C] The '##' operator may not be the last token in a macro replacement list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0803</td>
    <td width=92%>[C] The '#' operator may only appear before a macro parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0804</td>
    <td width=92%>[C] Macro parameter '%s' is not unique.</td>
  </tr>
  <tr>
    <td width=8%>qac-0811</td>
    <td width=92%>[C] The glue operator '##' may only appear in a '#define' preprocessing directive.</td>
  </tr>
  <tr>
    <td width=8%>qac-0821</td>
    <td width=92%>[C] '#include' does not identify a header or source file that can be processed.</td>
  </tr>
  <tr>
    <td width=8%>qac-0834</td>
    <td width=92%>[C] Function-like macro '%s()' is being redefined as an object-like macro.</td>
  </tr>
  <tr>
    <td width=8%>qac-0835</td>
    <td width=92%>[C] Macro '%s' is being redefined with different parameter names.</td>
  </tr>
  <tr>
    <td width=8%>qac-0844</td>
    <td width=92%>[C] Macro '%s' is being redefined with a different replacement list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0845</td>
    <td width=92%>[C] Object-like macro '%s' is being redefined as a function-like macro.</td>
  </tr>
  <tr>
    <td width=8%>qac-0851</td>
    <td width=92%>[C] More arguments in macro call than specified in definition.</td>
  </tr>
  <tr>
    <td width=8%>qac-0852</td>
    <td width=92%>[S] Unable to find the ')' that marks the end of the macro call.</td>
  </tr>
  <tr>
    <td width=8%>qac-0866</td>
    <td width=92%>[C] The string literal in a '#line' directive cannot be a 'wide string literal'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0873</td>
    <td width=92%>[C] Preprocessing token cannot be converted to an actual token.</td>
  </tr>
  <tr>
    <td width=8%>qac-0877</td>
    <td width=92%>[C] '#if' and '#elif' expressions may contain only integral constants.</td>
  </tr>
  <tr>
    <td width=8%>qac-0940</td>
    <td width=92%>[C] Illegal usage of a variably modified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0941</td>
    <td width=92%>[C] A variable length array may not be initialized.</td>
  </tr>
  <tr>
    <td width=8%>qac-0943</td>
    <td width=92%>[C] Jump to label '%s' is a jump into the scope of an identifier with variably modified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0944</td>
    <td width=92%>[C] The label '%s' is inside the scope of an identifier with variably modified type.</td>
  </tr>
  <tr>
    <td width=8%>qac-1023</td>
    <td width=92%>[C] Using '_Alignof' on function types is illegal.</td>
  </tr>
  <tr>
    <td width=8%>qac-1024</td>
    <td width=92%>[C] Using '_Alignof' on incomplete types is illegal.</td>
  </tr>
  <tr>
    <td width=8%>qac-1025</td>
    <td width=92%>[C] Using '_Alignof' on bit-fields is illegal.</td>
  </tr>
  <tr>
    <td width=8%>qac-1033</td>
    <td width=92%>[C] The identifier __VA_ARGS__ may only be used in the replacement list of a variadic macro.</td>
  </tr>
  <tr>
    <td width=8%>qac-1047</td>
    <td width=92%>[EE] Function is being declared with default argument syntax after a previous call to the function. This is not allowed.</td>
  </tr>
  <tr>
    <td width=8%>qac-1048</td>
    <td width=92%>[EE] Default argument values are missing for some parameters in this function declaration. This is not allowed.</td>
  </tr>
  <tr>
    <td width=8%>qac-1050</td>
    <td width=92%>[EE] Nested functions cannot be 'extern' or 'static'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1061</td>
    <td width=92%>[C] Structure '%1s' with flexible array member '%2s' cannot be used in the declaration of structure member '%3s'.</td>
  </tr>
  <tr>
    <td width=8%>qac-1062</td>
    <td width=92%>[C] Structure '%1s' with flexible array member '%2s' cannot be used in the declaration of array elements.</td>
  </tr>
  <tr>
    <td width=8%>qac-3236</td>
    <td width=92%>[C] 'inline' may not be applied to function 'main'.</td>
  </tr>
  <tr>
    <td width=8%>qac-3237</td>
    <td width=92%>[C] inline function '%1s' has external linkage and is defining an object, '%2s', with static storage duration.</td>
  </tr>
  <tr>
    <td width=8%>qac-3238</td>
    <td width=92%>[C] inline function '%1s' has external linkage and is referring to an object, '%2s', with internal linkage.</td>
  </tr>
  <tr>
    <td width=8%>qac-3244</td>
    <td width=92%>[C] 'inline' may only be used in the declaration of a function identifier.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>MSC41</td>
    <td width=2%>Rule</td>
    <td width=40%>Never hard code sensitive information</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3122</td>
    <td width=92%>Hard-coded 'magic' string literal, %1s.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS30</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Use the readlink() function properly</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5033</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS33</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not use vfork()</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5023</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS34</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not call putenv() with a pointer to an automatic variable as the argument</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5024</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS35</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Avoid race conditions while checking for the existence of a symbolic link</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4886</td>
    <td width=92%>Definite: Time-of-check time-of-use race condition when checking for the existence of a symbolic link.</td>
  </tr>
  <tr>
    <td width=8%>qac-4887</td>
    <td width=92%>Apparent: Time-of-check time-of-use race condition when checking for the existence of a symbolic link.</td>
  </tr>
  <tr>
    <td width=8%>qac-4888</td>
    <td width=92%>Suspicious: Time-of-check time-of-use race condition when checking for the existence of a symbolic link.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS36</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Observe correct revocation order while relinquishing privileges</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4891</td>
    <td width=92%>Definite: Revocation order was not observed while relinquishing privileges.</td>
  </tr>
  <tr>
    <td width=8%>qac-4892</td>
    <td width=92%>Apparent: Revocation order was not observed while relinquishing privileges.</td>
  </tr>
  <tr>
    <td width=8%>qac-4893</td>
    <td width=92%>Suspicious: Revocation order was not observed while relinquishing privileges.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS37</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Ensure that privilege relinquishment is successful</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4876</td>
    <td width=92%>Definite: Permanent user rights drop success is not checked.</td>
  </tr>
  <tr>
    <td width=8%>qac-4877</td>
    <td width=92%>Apparent: Permanent user rights drop success is not checked.</td>
  </tr>
  <tr>
    <td width=8%>qac-4878</td>
    <td width=92%>Suspicious: Permanent user rights drop success is not checked.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS38</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Beware of race conditions when using fork and file descriptors</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4951</td>
    <td width=92%>Definite: Beware of race conditions when using fork and file descriptors.</td>
  </tr>
  <tr>
    <td width=8%>qac-4952</td>
    <td width=92%>Apparent: Beware of race conditions when using fork and file descriptors.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS39</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Use the correct byte ordering when transferring data between systems</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4906</td>
    <td width=92%>Definite: Data may not be correctly converted between host and network byte order.</td>
  </tr>
  <tr>
    <td width=8%>qac-4907</td>
    <td width=92%>Apparent: Data may not be correctly converted between host and network byte order.</td>
  </tr>
  <tr>
    <td width=8%>qac-4908</td>
    <td width=92%>Suspicious: Data may not be correctly converted between host and network byte order.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS44</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not use signals to terminate threads</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5034</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS47</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not use threads that can be canceled asynchronously</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5035</td>
    <td width=92%>Asynchronous thread cancellation is used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS48</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not unlock or destroy another POSIX thread's mutex</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4971</td>
    <td width=92%>Definite: Attempt to destroy a mutex which has not been created by the current thread</td>
  </tr>
  <tr>
    <td width=8%>qac-4972</td>
    <td width=92%>Apparent: Attempt to destroy a mutex which has not been created by the current thread</td>
  </tr>
  <tr>
    <td width=8%>qac-4981</td>
    <td width=92%>Definite: Attempt to unlock a mutex which has not been locked by the current thread</td>
  </tr>
  <tr>
    <td width=8%>qac-4982</td>
    <td width=92%>Apparent: Attempt to unlock a mutex which has not been locked by the current thread</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS49</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>When data must be accessed by multiple threads, provide a mutex and guarantee no adjacent data is also accessed</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1774</td>
    <td width=92%>Definite: data race for an object '%1s' which shares its physical storage location with one or more others.</td>
  </tr>
  <tr>
    <td width=8%>mta-1775</td>
    <td width=92%>Apparent: data race for an object '%1s' which shares its physical storage location with one or more others.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS50</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Declare objects shared between POSIX threads with appropriate storage durations</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4926</td>
    <td width=92%>Definite: The lifetime of the variable passed to the thread creation function is shorter than the lifetime of the thread.</td>
  </tr>
  <tr>
    <td width=8%>qac-4927</td>
    <td width=92%>Apparent: The lifetime of the variable passed to the thread creation function is shorter than the lifetime of the thread.</td>
  </tr>
  <tr>
    <td width=8%>qac-4928</td>
    <td width=92%>Suspicious: The lifetime of the variable passed to the thread creation function is shorter than the lifetime of the thread.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS51</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Avoid deadlock with POSIX threads by locking in predefined order</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1772</td>
    <td width=92%>Mutex '%1s' violates the lock hierarchy, as it is acquired before '%2s' elsewhere %3s% of the time.</td>
  </tr>
  <tr>
    <td width=8%>mta-1773</td>
    <td width=92%>Mutexes '%1s' and '%2s' are not ordered in the lock hierarchy.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS52</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not perform operations that can block while holding a POSIX lock</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4966</td>
    <td width=92%>Definite: Performing a blocking action while holding a POSIX lock.</td>
  </tr>
  <tr>
    <td width=8%>qac-4967</td>
    <td width=92%>Apparent: Performing a blocking action while holding a POSIX lock.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS53</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Do not use more than one mutex for concurrent waiting operations on a condition variable</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>mta-1769</td>
    <td width=92%>Condition variable '%1s' used with multiple mutexes.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>POS54</td>
    <td width=2%>Rule_Optional</td>
    <td width=40%>Detect and handle POSIX library errors</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3200</td>
    <td width=92%>'%s' returns a value which is not being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE00</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Prefer inline or static functions to function-like macros</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3453</td>
    <td width=92%>A function could probably be used instead of this function-like macro.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE01</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use parentheses within macros around parameter names</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3410</td>
    <td width=92%>Macro parameter not enclosed in ().</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE02</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Macro replacement lists should be parenthesized</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3409</td>
    <td width=92%>The replacement list of function-like macro '%1s' is not enclosed in ().</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE03</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Prefer typedefs to defines for encoding non-pointer types</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3413</td>
    <td width=92%>Macro definition could be replaced by a typedef.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE04</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not reuse a standard header file name</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5001</td>
    <td width=92%>The header '%s' is a standard header file name.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE05</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Understand macro replacement when concatenating tokens or performing stringification</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0341</td>
    <td width=92%>Using the stringify operator '#'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0342</td>
    <td width=92%>Using the glue operator '##'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0801</td>
    <td width=92%>[C] The '##' operator may not be the first token in a macro replacement list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0802</td>
    <td width=92%>[C] The '##' operator may not be the last token in a macro replacement list.</td>
  </tr>
  <tr>
    <td width=8%>qac-0803</td>
    <td width=92%>[C] The '#' operator may only appear before a macro parameter.</td>
  </tr>
  <tr>
    <td width=8%>qac-0811</td>
    <td width=92%>[C] The glue operator '##' may only appear in a '#define' preprocessing directive.</td>
  </tr>
  <tr>
    <td width=8%>qac-0872</td>
    <td width=92%>[U] Result of '##' operator is not a legal preprocessing token.</td>
  </tr>
  <tr>
    <td width=8%>qac-0880</td>
    <td width=92%>Using # and ## operators in the same macro definition.</td>
  </tr>
  <tr>
    <td width=8%>qac-0881</td>
    <td width=92%>Using multiple ## operators in the same macro definition.</td>
  </tr>
  <tr>
    <td width=8%>qac-0884</td>
    <td width=92%>Using multiple # operators in the same macro definition.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE06</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Enclose header files in an inclusion guard</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0883</td>
    <td width=92%>Include file code is not protected against repeated inclusion</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE07</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Avoid using repeated question marks</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3601</td>
    <td width=92%>Trigraphs (??x) are an ISO feature.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE08</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Guarantee that header file names are unique</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5002</td>
    <td width=92%>The header '%s' file name shadows a previously included header.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE09</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not replace secure functions with deprecated or obsolescent functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5003</td>
    <td width=92%>The obsolete function '%s' will be used as a result of this macro expansion</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE10</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Wrap multi-statement macros in a do-while loop</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3412</td>
    <td width=92%>Macro defines an unrecognized code-fragment.</td>
  </tr>
  <tr>
    <td width=8%>qac-3458</td>
    <td width=92%>Macro defines a braced code statement block.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE11</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not conclude macro definitions with a semicolon</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3412</td>
    <td width=92%>Macro defines an unrecognized code-fragment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE12</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not define unsafe macros</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3456</td>
    <td width=92%>Parameter '%1s' will be evaluated more than once when this macro is used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not create a universal character name through concatenation</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0905</td>
    <td width=92%>[U] Producing a universal character name through token concatenation is undefined.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE31</td>
    <td width=2%>Rule</td>
    <td width=40%>Avoid side effects in arguments to unsafe macros</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-3462</td>
    <td width=92%>Argument to macro '%s' appears to contain a side effect, but it is not used.</td>
  </tr>
  <tr>
    <td width=8%>qac-3463</td>
    <td width=92%>Argument to macro '%s' contains a side effect that will not be evaluated at runtime.</td>
  </tr>
  <tr>
    <td width=8%>qac-3464</td>
    <td width=92%>Argument to macro '%s' contains a side effect that will be evaluated more than once.</td>
  </tr>
  <tr>
    <td width=8%>qac-3465</td>
    <td width=92%>Argument to macro '%s' contains a side effect that might not be evaluated at runtime.</td>
  </tr>
  <tr>
    <td width=8%>qac-3466</td>
    <td width=92%>Variable argument list to macro '%s' appears to contain an expression with side effects.</td>
  </tr>
  <tr>
    <td width=8%>qac-3467</td>
    <td width=92%>Variable argument list to macro '%s' appears to contain an expression with side effects that will be used more than once.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>PRE32</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not use preprocessor directives in invocations of function-like macros</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0853</td>
    <td width=92%>[U] Macro arguments contain a sequence of tokens that has the form of a preprocessing directive.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>SIG00</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Mask signals handled by noninterruptible signal handlers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5019</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>SIG01</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Understand implementation-specific details regarding signal handler persistence</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5020</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>SIG30</td>
    <td width=2%>Rule</td>
    <td width=40%>Call only asynchronous-safe functions within signal handlers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2028</td>
    <td width=92%>Signal handler '%1s' calls async-unsafe functions.</td>
  </tr>
  <tr>
    <td width=8%>qac-2030</td>
    <td width=92%>The signal handler passed here might not be async-safe.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>SIG31</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not access shared objects in signal handlers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2029</td>
    <td width=92%>Signal handler '%1s' accesses shared objects.</td>
  </tr>
  <tr>
    <td width=8%>qac-2030</td>
    <td width=92%>The signal handler passed here might not be async-safe.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>SIG34</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not call signal() from within interruptible signal handlers</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5021</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>SIG35</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not return from a computational exception signal handler</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4846</td>
    <td width=92%>Definite: Signal handler returns from a computational exception.</td>
  </tr>
  <tr>
    <td width=8%>qac-4847</td>
    <td width=92%>Apparent: Signal handler returns from a computational exception.</td>
  </tr>
  <tr>
    <td width=8%>qac-4848</td>
    <td width=92%>Suspicious: Signal handler returns from a computational exception.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR04</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use plain char for characters in the basic character set</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0432</td>
    <td width=92%>[C] Function argument is not of compatible pointer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0674</td>
    <td width=92%>[C] Initializer for pointer is of incompatible type.</td>
  </tr>
  <tr>
    <td width=8%>qac-0699</td>
    <td width=92%>[C] String literal used to initialize a pointer of incompatible type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR05</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use pointers to const when referring to string literals</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0752</td>
    <td width=92%>String literal passed as argument to function whose parameter is not a 'pointer to const'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0753</td>
    <td width=92%>String literal assigned to pointer which is not a 'pointer to const'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR06</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not assume that strtok() leaves the parse string unchanged</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5007</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR07</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Use the bounds-checking interfaces for string manipulation</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>certccm-5008</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR09</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Don't assume numeric values for expressions with type plain character</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2106</td>
    <td width=92%>Integral promotion : plain char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=8%>qac-2107</td>
    <td width=92%>Integral promotion : plain char promoted to unsigned int.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR10</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not concatenate different type of string literals</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0874</td>
    <td width=92%>[U] Character string literal and wide character string literal are adjacent.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR11</td>
    <td width=2%>Recommendation</td>
    <td width=40%>Do not specify the bound of a character array initialized with a string literal</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-1312</td>
    <td width=92%>The array being initialized is not large enough to hold a terminating null byte for the string initializer.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR30</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not attempt to modify string literals</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0556</td>
    <td width=92%>[C] Left operand of assignment must be a modifiable object.</td>
  </tr>
  <tr>
    <td width=8%>qac-0752</td>
    <td width=92%>String literal passed as argument to function whose parameter is not a 'pointer to const'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0753</td>
    <td width=92%>String literal assigned to pointer which is not a 'pointer to const'.</td>
  </tr>
  <tr>
    <td width=8%>qac-0754</td>
    <td width=92%>[U] String literal is being modified.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR31</td>
    <td width=2%>Rule</td>
    <td width=40%>Guarantee that storage for strings has sufficient space for character data and the null terminator</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2840</td>
    <td width=92%>Constant: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2841</td>
    <td width=92%>Definite: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2842</td>
    <td width=92%>Apparent: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2843</td>
    <td width=92%>Suspicious: Dereference of an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2845</td>
    <td width=92%>Constant: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2846</td>
    <td width=92%>Definite: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2847</td>
    <td width=92%>Apparent: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2848</td>
    <td width=92%>Suspicious: Maximum number of characters to be read/written is larger than the target buffer size.</td>
  </tr>
  <tr>
    <td width=8%>qac-2930</td>
    <td width=92%>Constant: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2931</td>
    <td width=92%>Definite: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2932</td>
    <td width=92%>Apparent: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2933</td>
    <td width=92%>Suspicious: Computing an invalid pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2935</td>
    <td width=92%>Constant: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2936</td>
    <td width=92%>Definite: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2937</td>
    <td width=92%>Apparent: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>qac-2938</td>
    <td width=92%>Suspicious: Dereference of an invalid char pointer value.</td>
  </tr>
  <tr>
    <td width=8%>certccm-5009</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
  <tr>
    <td width=8%>certccm-5038</td>
    <td width=92%>'%s' is being used.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR32</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not pass a non-null-terminated character sequence to a library function that expects a string</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2835</td>
    <td width=92%>Constant: Non-null terminated string used in a string function.</td>
  </tr>
  <tr>
    <td width=8%>qac-2836</td>
    <td width=92%>Definite: Non-null terminated string used in a string function.</td>
  </tr>
  <tr>
    <td width=8%>qac-2839</td>
    <td width=92%>Possible: Non-null terminated string used in a string function.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR34</td>
    <td width=2%>Rule</td>
    <td width=40%>Cast characters to unsigned char before converting to larger integer sizes</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-2140</td>
    <td width=92%>Implicit conversion from plain char to wider signed integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2141</td>
    <td width=92%>Implicit conversion from plain char to wider unsigned integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2143</td>
    <td width=92%>Implicit conversion from plain char to enum type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2144</td>
    <td width=92%>Implicit conversion from signed char to wider signed integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2145</td>
    <td width=92%>Implicit conversion from signed char to wider unsigned integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2147</td>
    <td width=92%>Implicit conversion from signed char to enum type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2148</td>
    <td width=92%>Explicit conversion from plain char to wider signed integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2149</td>
    <td width=92%>Explicit conversion from plain char to wider unsigned integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2151</td>
    <td width=92%>Explicit conversion from plain char to enum type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2152</td>
    <td width=92%>Explicit conversion from signed char to wider signed integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2153</td>
    <td width=92%>Explicit conversion from signed char to wider unsigned integer type.</td>
  </tr>
  <tr>
    <td width=8%>qac-2155</td>
    <td width=92%>Explicit conversion from signed char to enum type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR37</td>
    <td width=2%>Rule</td>
    <td width=40%>Arguments to character-handling functions must be representable as an unsigned char</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-4413</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to signed type, '%2s' on assignment.</td>
  </tr>
  <tr>
    <td width=8%>qac-4414</td>
    <td width=92%>An expression of 'essentially character' type (%1s) is being converted to unsigned type, '%2s' on assignment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr> 
    <td width=2%>STR38</td>
    <td width=2%>Rule</td>
    <td width=40%>Do not confuse narrow and wide character strings and functions</td>
    <td><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=8%>qac-0432</td>
    <td width=92%>[C] Function argument is not of compatible pointer type.</td>
  </tr>
</table></center>
</td>
  </tr>
</table></center>
</div>
<div class="GRP">
<div class="sec"><h2><a name="GRP">GRP - Guideline Recategorization Plan</a></h2></div>
This section targets to provide an overview of Guidelines Recategorization Plan.
<br>
<br>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Guideline</th><th>Description</th><th>Category</th><th>Revised Category</th></tr>
  <tr>
    <td width=5%>ARR02</td>
    <td>Explicitly specify array bounds, even if implicitly defined by an initializer</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>ARR30</td>
    <td>Do not form or use out-of-bounds pointers or array subscripts</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ARR32</td>
    <td>Ensure size arguments for variable length arrays are in a valid range</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ARR36</td>
    <td>Do not subtract or compare two pointers that do not refer to the same array</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ARR37</td>
    <td>Do not add or subtract an integer to a pointer to a non-array object</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ARR38</td>
    <td>Guarantee that library functions do not form invalid pointers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ARR39</td>
    <td>Do not add or subtract a scaled integer to a pointer</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON30</td>
    <td>Clean up thread-specific storage</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON31</td>
    <td>Do not destroy a mutex while it is locked</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON32</td>
    <td>Prevent data races when accessing bit-fields from multiple threads</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON33</td>
    <td>Avoid race conditions when using library functions</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON34</td>
    <td>Declare objects shared between threads with appropriate storage durations</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON35</td>
    <td>Avoid deadlock by locking in a predefined order</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON36</td>
    <td>Wrap functions that can spuriously wake up in a loop</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON37</td>
    <td>Do not call signal() in a multithreaded program</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON38</td>
    <td>Preserve thread safety and liveness when using condition variables</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON39</td>
    <td>Do not join or detach a thread that was previously joined or detached</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON40</td>
    <td>Do not refer to an atomic variable twice in an expression</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON41</td>
    <td>Wrap functions that can fail spuriously in a loop</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>CON43</td>
    <td>Do not allow data races in multithreaded code</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL00</td>
    <td>Const-qualify immutable objects</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL01</td>
    <td>Do not reuse variable names in subscopes</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL05</td>
    <td>Use typedefs of non-pointer types only</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>DCL06</td>
    <td>Use meaningful symbolic constants to represent literal values</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL07</td>
    <td>Include the appropriate type information in function declarators</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL10</td>
    <td>Maintain the contract between the writer and caller of variadic functions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL11</td>
    <td>Understand the type issues associated with variadic functions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL13</td>
    <td>Declare function parameters that are pointers to values not changed by the function as const</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL15</td>
    <td>Declare file-scope objects or functions that do not need external linkage as static</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL16</td>
    <td>Use 'L', not 'l', to indicate a long value</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL18</td>
    <td>Do not begin integer constants with 0 when specifying a decimal value</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL19</td>
    <td>Minimize the scope of variables and functions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL20</td>
    <td>Explicitly specify void when a function accepts no arguments</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL21</td>
    <td>Understand the storage of compound literals</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL23</td>
    <td>Guarantee that mutually visible identifiers are unique</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>DCL30</td>
    <td>Declare objects with appropriate storage durations</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL31</td>
    <td>Declare identifiers before using them</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL36</td>
    <td>Do not declare an identifier with conflicting linkage classifications</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL37</td>
    <td>Do not declare or define a reserved identifier</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL38</td>
    <td>Use the correct syntax when declaring a flexible array member</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL39</td>
    <td>Avoid information leakage when passing a structure across a trust boundary</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL40</td>
    <td>Do not create incompatible declarations of the same function or object</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>DCL41</td>
    <td>Do not declare variables inside a switch statement before the first case label</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ENV03</td>
    <td>Sanitize the environment when invoking external programs</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>ENV30</td>
    <td>Do not modify the object referenced by the return value of certain functions</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ENV31</td>
    <td>Do not rely on an environment pointer following an operation that may invalidate it</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ENV32</td>
    <td>All exit handlers must return normally</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ENV33</td>
    <td>Do not call system()</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ENV34</td>
    <td>Do not store pointers returned by certain functions</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ERR30</td>
    <td>Set errno to zero before calling a library function known to set errno, and check errno only after the function returns a value indicating failure</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ERR32</td>
    <td>Do not rely on indeterminate values of errno</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>ERR33</td>
    <td>Detect and handle standard library errors</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>ERR34</td>
    <td>Detect errors when converting a string to a number</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP00</td>
    <td>Use parentheses for precedence of operation</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP02</td>
    <td>Be aware of the short-circuit behavior of the logical AND and OR operators</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP03</td>
    <td>Do not assume the size of a structure is the sum of the sizes of its members</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP05</td>
    <td>Do not cast away a const qualification</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP07</td>
    <td>Do not diminish the benefits of constants by assuming their values in expressions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP08</td>
    <td>Ensure pointer arithmetic is used correctly</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP10</td>
    <td>Do not depend on the order of evaluation of subexpressions or the order in which side effects take place</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP11</td>
    <td>Do not make assumptions regarding the layout of structures with bit-fields</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP12</td>
    <td>Do not ignore values returned by functions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>EXP13</td>
    <td>Treat relational and equality operators as if they were nonassociative</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP15</td>
    <td>Do not place a semicolon on the same line as an if, for, or while statement</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>EXP16</td>
    <td>Do not compare function pointers to constant values</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP19</td>
    <td>Use braces for the body of an if, for, or while statement</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP20</td>
    <td>Perform explicit tests to determine success, true and false, and equality</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>EXP30</td>
    <td>Do not depend on the order of evaluation for side effects</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP32</td>
    <td>Do not access a volatile object through a nonvolatile reference</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP33</td>
    <td>Do not read uninitialized memory</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP34</td>
    <td>Do not dereference null pointers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP35</td>
    <td>Do not modify objects with temporary lifetime</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP36</td>
    <td>Do not cast pointers into more strictly aligned pointer types</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP37</td>
    <td>Call functions with the correct number and type of arguments</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP39</td>
    <td>Do not access a variable through a pointer of an incompatible type</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP40</td>
    <td>Do not modify constant objects</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP42</td>
    <td>Do not compare padding data</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP43</td>
    <td>Avoid undefined behavior when using restrict-qualified pointers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP44</td>
    <td>Do not rely on side effects in operands to sizeof, _Alignof, or _Generic</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP45</td>
    <td>Do not perform assignments in selection statements</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP46</td>
    <td>Do not use a bitwise operator with a Boolean-like operand</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>EXP47</td>
    <td>Do not call va_arg with an argument of the incorrect type</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO01</td>
    <td>Be careful using functions that use file names for identification</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FIO03</td>
    <td>Do not make assumptions about fopen() and file creation</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FIO06</td>
    <td>Create files with appropriate access permissions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FIO08</td>
    <td>Take care when calling remove() on an open file</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FIO10</td>
    <td>Take care when using the rename() function</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FIO21</td>
    <td>Do not create temporary files in shared directories</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FIO30</td>
    <td>Exclude user input from format strings</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO32</td>
    <td>Do not perform operations on devices that are only appropriate for files</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO34</td>
    <td>Distinguish between characters read from a file and EOF or WEOF</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO37</td>
    <td>Do not assume that fgets() or fgetws() returns a nonempty string when successful</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO38</td>
    <td>Do not copy a FILE object</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO39</td>
    <td>Do not alternately input and output from a stream without an intervening flush or positioning call</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO40</td>
    <td>Reset strings on fgets() or fgetws() failure</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO41</td>
    <td>Do not call getc(), putc(), getwc(), or putwc() with a stream argument that has side effects</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO42</td>
    <td>Close files when they are no longer needed</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO44</td>
    <td>Only use values for fsetpos() that are returned from fgetpos()</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO45</td>
    <td>Avoid TOCTOU race conditions while accessing files</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO46</td>
    <td>Do not access a closed file</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FIO47</td>
    <td>Use valid format strings</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FLP02</td>
    <td>Avoid using floating-point numbers when precise computation is needed</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FLP06</td>
    <td>Convert integers to floating point for floating point operations</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>FLP30</td>
    <td>Do not use floating-point variables as loop counters</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FLP32</td>
    <td>Prevent or detect domain and range errors in math functions</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FLP34</td>
    <td>Ensure that floating-point conversions are within range of the new type</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FLP36</td>
    <td>Preserve precision when converting integral values to floating-point type</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>FLP37</td>
    <td>Do not use object representations to compare floating-point values</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT02</td>
    <td>Understand integer conversion rules</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT04</td>
    <td>Enforce limits on integer values originating from tainted sources</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT05</td>
    <td>Do not use input functions to convert character data if they cannot handle all possible inputs</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT07</td>
    <td>Use only explicitly signed or unsigned char type for numeric values</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT08</td>
    <td>Verify that all integer values are in range</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT09</td>
    <td>Ensure enumeration constants map to unique values</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT10</td>
    <td>Do not assume a positive remainder when using the % operator</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT12</td>
    <td>Do not make assumptions about the type of a plain int bit-field when used in an expression</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT13</td>
    <td>Use bitwise operators only on unsigned operands</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT16</td>
    <td>Do not make assumptions about representation of signed integers</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT18</td>
    <td>Evaluate integer expressions in a larger size before comparing or assigning to that size</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>INT30</td>
    <td>Ensure that unsigned integer operations do not wrap</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT31</td>
    <td>Ensure that integer conversions do not result in lost or misinterpreted data</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT32</td>
    <td>Ensure that operations on signed integers do not result in overflow</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT33</td>
    <td>Ensure that division and remainder operations do not result in divide-by-zero errors</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT34</td>
    <td>Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT35</td>
    <td>Use correct integer precisions</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>INT36</td>
    <td>Converting a pointer to integer or integer to pointer</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MEM02</td>
    <td>Immediately cast the result of a memory allocation function call into a pointer to the allocated type</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MEM03</td>
    <td>Clear sensitive information stored in reusable resources</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MEM05</td>
    <td>Avoid large stack allocations</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MEM30</td>
    <td>Do not access freed memory</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MEM31</td>
    <td>Free dynamically allocated memory when no longer needed</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MEM33</td>
    <td>Allocate and copy structures containing a flexible array member dynamically</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MEM34</td>
    <td>Only free memory allocated dynamically</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MEM35</td>
    <td>Allocate sufficient memory for an object</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MEM36</td>
    <td>Do not modify the alignment of objects by calling realloc()</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC01</td>
    <td>Strive for logical completeness</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC04</td>
    <td>Use comments consistently and in a readable fashion</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC07</td>
    <td>Detect and remove dead code</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC09</td>
    <td>Character encoding: Use subset of ASCII for safety</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC12</td>
    <td>Detect and remove code that has no effect or is never executed</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC13</td>
    <td>Detect and remove unused values</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC14</td>
    <td>Do not introduce unnecessary platform dependencies</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC15</td>
    <td>Do not depend on undefined behavior</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC17</td>
    <td>Finish every set of statements associated with a case label with a break statement</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC20</td>
    <td>Do not use a switch statement to transfer control into a complex block</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>MSC30</td>
    <td>Do not use the rand() function for generating pseudorandom numbers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC32</td>
    <td>Properly seed pseudorandom number generators</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC33</td>
    <td>Do not pass invalid data to the asctime() function</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC37</td>
    <td>Ensure that control never reaches the end of a non-void function</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC38</td>
    <td>Do not treat a predefined identifier as an object if it might only be implemented as a macro</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC39</td>
    <td>Do not call va_arg() on a va_list that has an indeterminate value</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC40</td>
    <td>Do not violate constraints</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>MSC41</td>
    <td>Never hard code sensitive information</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>POS30</td>
    <td>Use the readlink() function properly</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS33</td>
    <td>Do not use vfork()</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS34</td>
    <td>Do not call putenv() with a pointer to an automatic variable as the argument</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS35</td>
    <td>Avoid race conditions while checking for the existence of a symbolic link</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS36</td>
    <td>Observe correct revocation order while relinquishing privileges</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS37</td>
    <td>Ensure that privilege relinquishment is successful</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS38</td>
    <td>Beware of race conditions when using fork and file descriptors</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS39</td>
    <td>Use the correct byte ordering when transferring data between systems</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS44</td>
    <td>Do not use signals to terminate threads</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS47</td>
    <td>Do not use threads that can be canceled asynchronously</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS48</td>
    <td>Do not unlock or destroy another POSIX thread's mutex</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS49</td>
    <td>When data must be accessed by multiple threads, provide a mutex and guarantee no adjacent data is also accessed</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS50</td>
    <td>Declare objects shared between POSIX threads with appropriate storage durations</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS51</td>
    <td>Avoid deadlock with POSIX threads by locking in predefined order</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS52</td>
    <td>Do not perform operations that can block while holding a POSIX lock</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS53</td>
    <td>Do not use more than one mutex for concurrent waiting operations on a condition variable</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10%>Rule_Optional</td>
  </tr>
  <tr>
    <td width=5%>POS54</td>
    <td>Detect and handle POSIX library errors</td>
    <td align=center width=10%>Rule_Optional</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE00</td>
    <td>Prefer inline or static functions to function-like macros</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE01</td>
    <td>Use parentheses within macros around parameter names</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE02</td>
    <td>Macro replacement lists should be parenthesized</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE03</td>
    <td>Prefer typedefs to defines for encoding non-pointer types</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE04</td>
    <td>Do not reuse a standard header file name</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE05</td>
    <td>Understand macro replacement when concatenating tokens or performing stringification</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE06</td>
    <td>Enclose header files in an inclusion guard</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE07</td>
    <td>Avoid using repeated question marks</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE08</td>
    <td>Guarantee that header file names are unique</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE09</td>
    <td>Do not replace secure functions with deprecated or obsolescent functions</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE10</td>
    <td>Wrap multi-statement macros in a do-while loop</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>PRE11</td>
    <td>Do not conclude macro definitions with a semicolon</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE12</td>
    <td>Do not define unsafe macros</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10% class="docCellBlue">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE30</td>
    <td>Do not create a universal character name through concatenation</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>PRE31</td>
    <td>Avoid side effects in arguments to unsafe macros</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>PRE32</td>
    <td>Do not use preprocessor directives in invocations of function-like macros</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>SIG00</td>
    <td>Mask signals handled by noninterruptible signal handlers</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>SIG01</td>
    <td>Understand implementation-specific details regarding signal handler persistence</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>SIG30</td>
    <td>Call only asynchronous-safe functions within signal handlers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>SIG31</td>
    <td>Do not access shared objects in signal handlers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>SIG34</td>
    <td>Do not call signal() from within interruptible signal handlers</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>SIG35</td>
    <td>Do not return from a computational exception signal handler</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>STR04</td>
    <td>Use plain char for characters in the basic character set</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR05</td>
    <td>Use pointers to const when referring to string literals</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR06</td>
    <td>Do not assume that strtok() leaves the parse string unchanged</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR07</td>
    <td>Use the bounds-checking interfaces for string manipulation</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR09</td>
    <td>Don't assume numeric values for expressions with type plain character</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR10</td>
    <td>Do not concatenate different type of string literals</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR11</td>
    <td>Do not specify the bound of a character array initialized with a string literal</td>
    <td align=center width=10%>Recommendation</td>
    <td align=center width=10%>Recommendation</td>
  </tr>
  <tr>
    <td width=5%>STR30</td>
    <td>Do not attempt to modify string literals</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>STR31</td>
    <td>Guarantee that storage for strings has sufficient space for character data and the null terminator</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>STR32</td>
    <td>Do not pass a non-null-terminated character sequence to a library function that expects a string</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>STR34</td>
    <td>Cast characters to unsigned char before converting to larger integer sizes</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>STR37</td>
    <td>Arguments to character-handling functions must be representable as an unsigned char</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
  <tr>
    <td width=5%>STR38</td>
    <td>Do not confuse narrow and wide character strings and functions</td>
    <td align=center width=10%>Rule</td>
    <td align=center width=10%>Rule</td>
  </tr>
</table></center>
</div>
<div class="GCS">
<div class="sec"><h2><a name="GCS">GCS - Guideline Compliance Summary</a></h2></div>
This section targets to provide an overview of Guidelines Compliance Summary.
<br>
<br>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Guideline</th><th>Category</th><th>Description</th><th>Compliance</th></tr>
  <tr>
    <td width=5%>ARR02</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Explicitly specify array bounds, even if implicitly defined by an initializer</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ARR30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not form or use out-of-bounds pointers or array subscripts</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ARR32</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure size arguments for variable length arrays are in a valid range</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ARR36</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not subtract or compare two pointers that do not refer to the same array</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ARR37</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not add or subtract an integer to a pointer to a non-array object</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ARR38</td>
    <td width=2%>Rule</td>
    <td width=50%>Guarantee that library functions do not form invalid pointers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ARR39</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not add or subtract a scaled integer to a pointer</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON30</td>
    <td width=2%>Rule</td>
    <td width=50%>Clean up thread-specific storage</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON31</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not destroy a mutex while it is locked</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON32</td>
    <td width=2%>Rule</td>
    <td width=50%>Prevent data races when accessing bit-fields from multiple threads</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON33</td>
    <td width=2%>Rule</td>
    <td width=50%>Avoid race conditions when using library functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON34</td>
    <td width=2%>Rule</td>
    <td width=50%>Declare objects shared between threads with appropriate storage durations</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON35</td>
    <td width=2%>Rule</td>
    <td width=50%>Avoid deadlock by locking in a predefined order</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON36</td>
    <td width=2%>Rule</td>
    <td width=50%>Wrap functions that can spuriously wake up in a loop</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON37</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not call signal() in a multithreaded program</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON38</td>
    <td width=2%>Rule</td>
    <td width=50%>Preserve thread safety and liveness when using condition variables</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON39</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not join or detach a thread that was previously joined or detached</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON40</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not refer to an atomic variable twice in an expression</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON41</td>
    <td width=2%>Rule</td>
    <td width=50%>Wrap functions that can fail spuriously in a loop</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>CON43</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not allow data races in multithreaded code</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL00</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Const-qualify immutable objects</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3204</td>
    <td width=95%>The variable '%s' is only set once and so it could be declared with the 'const' qualifier.</td>
  </tr>
  <tr>
    <td width=10%>qac-3227</td>
    <td width=95%>The parameter '%s' is never modified and so it could be declared with the 'const' qualifier.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>DCL01</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not reuse variable names in subscopes</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL05</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use typedefs of non-pointer types only</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>DCL06</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use meaningful symbolic constants to represent literal values</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3120</td>
    <td width=95%>Hard-coded 'magic' integer constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-3132</td>
    <td width=95%>Hard coded 'magic' number, '%1s', used to define the size of an array.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>DCL07</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Include the appropriate type information in function declarators</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3450</td>
    <td width=95%>Function '%s', with internal linkage, is being defined without a previous declaration.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>DCL10</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Maintain the contract between the writer and caller of variadic functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL11</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Understand the type issues associated with variadic functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL13</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Declare function parameters that are pointers to values not changed by the function as const</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL15</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Declare file-scope objects or functions that do not need external linkage as static</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL16</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use 'L', not 'l', to indicate a long value</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL18</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not begin integer constants with 0 when specifying a decimal value</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL19</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Minimize the scope of variables and functions</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3210</td>
    <td width=95%>The global identifier '%1s' is declared here but is not used in this translation unit.</td>
  </tr>
  <tr>
    <td width=10%>rcma-1505</td>
    <td width=95%>The function '%1s' is only referenced in the translation unit where it is defined.</td>
  </tr>
  <tr>
    <td width=10%>rcma-1532</td>
    <td width=95%>The function '%1s' is only referenced in one translation unit - but not the one in which it is defined.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>DCL20</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Explicitly specify void when a function accepts no arguments</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL21</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Understand the storage of compound literals</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL23</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Guarantee that mutually visible identifiers are unique</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0776</td>
    <td width=95%>[L] External identifier matches other external identifier(s) (e.g. '%1s') in first 6 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=10%>qac-0778</td>
    <td width=95%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 31 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>DCL30</td>
    <td width=2%>Rule</td>
    <td width=50%>Declare objects with appropriate storage durations</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL31</td>
    <td width=2%>Rule</td>
    <td width=50%>Declare identifiers before using them</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL36</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not declare an identifier with conflicting linkage classifications</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL37</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not declare or define a reserved identifier</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL38</td>
    <td width=2%>Rule</td>
    <td width=50%>Use the correct syntax when declaring a flexible array member</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL39</td>
    <td width=2%>Rule</td>
    <td width=50%>Avoid information leakage when passing a structure across a trust boundary</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>DCL40</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not create incompatible declarations of the same function or object</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0776</td>
    <td width=95%>[L] External identifier matches other external identifier(s) (e.g. '%1s') in first 6 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=10%>qac-0778</td>
    <td width=95%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 31 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>DCL41</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not declare variables inside a switch statement before the first case label</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ENV03</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Sanitize the environment when invoking external programs</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ENV30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not modify the object referenced by the return value of certain functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ENV31</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not rely on an environment pointer following an operation that may invalidate it</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ENV32</td>
    <td width=2%>Rule</td>
    <td width=50%>All exit handlers must return normally</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ENV33</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not call system()</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ENV34</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not store pointers returned by certain functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ERR30</td>
    <td width=2%>Rule</td>
    <td width=50%>Set errno to zero before calling a library function known to set errno, and check errno only after the function returns a value indicating failure</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ERR32</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not rely on indeterminate values of errno</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>ERR33</td>
    <td width=2%>Rule</td>
    <td width=50%>Detect and handle standard library errors</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>ERR34</td>
    <td width=2%>Rule</td>
    <td width=50%>Detect errors when converting a string to a number</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP00</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use parentheses for precedence of operation</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP02</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Be aware of the short-circuit behavior of the logical AND and OR operators</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP03</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not assume the size of a structure is the sum of the sizes of its members</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP05</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not cast away a const qualification</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP07</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not diminish the benefits of constants by assuming their values in expressions</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3120</td>
    <td width=95%>Hard-coded 'magic' integer constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-3132</td>
    <td width=95%>Hard coded 'magic' number, '%1s', used to define the size of an array.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>EXP08</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Ensure pointer arithmetic is used correctly</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP10</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not depend on the order of evaluation of subexpressions or the order in which side effects take place</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP11</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not make assumptions regarding the layout of structures with bit-fields</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0751</td>
    <td width=95%>Casting to char pointer type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>EXP12</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not ignore values returned by functions</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>EXP13</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Treat relational and equality operators as if they were nonassociative</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP15</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not place a semicolon on the same line as an if, for, or while statement</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>EXP16</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not compare function pointers to constant values</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP19</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use braces for the body of an if, for, or while statement</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP20</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Perform explicit tests to determine success, true and false, and equality</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not depend on the order of evaluation for side effects</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP32</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not access a volatile object through a nonvolatile reference</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP33</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not read uninitialized memory</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP34</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not dereference null pointers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP35</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not modify objects with temporary lifetime</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP36</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not cast pointers into more strictly aligned pointer types</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP37</td>
    <td width=2%>Rule</td>
    <td width=50%>Call functions with the correct number and type of arguments</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP39</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not access a variable through a pointer of an incompatible type</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0751</td>
    <td width=95%>Casting to char pointer type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>EXP40</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not modify constant objects</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP42</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not compare padding data</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP43</td>
    <td width=2%>Rule</td>
    <td width=50%>Avoid undefined behavior when using restrict-qualified pointers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP44</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not rely on side effects in operands to sizeof, _Alignof, or _Generic</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP45</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not perform assignments in selection statements</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3416</td>
    <td width=95%>Logical operation performed on expression with persistent side effects.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>EXP46</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not use a bitwise operator with a Boolean-like operand</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>EXP47</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not call va_arg with an argument of the incorrect type</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO01</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Be careful using functions that use file names for identification</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO03</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not make assumptions about fopen() and file creation</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO06</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Create files with appropriate access permissions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO08</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Take care when calling remove() on an open file</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO10</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Take care when using the rename() function</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO21</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not create temporary files in shared directories</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO30</td>
    <td width=2%>Rule</td>
    <td width=50%>Exclude user input from format strings</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO32</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not perform operations on devices that are only appropriate for files</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO34</td>
    <td width=2%>Rule</td>
    <td width=50%>Distinguish between characters read from a file and EOF or WEOF</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO37</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not assume that fgets() or fgetws() returns a nonempty string when successful</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO38</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not copy a FILE object</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO39</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not alternately input and output from a stream without an intervening flush or positioning call</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO40</td>
    <td width=2%>Rule</td>
    <td width=50%>Reset strings on fgets() or fgetws() failure</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO41</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not call getc(), putc(), getwc(), or putwc() with a stream argument that has side effects</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO42</td>
    <td width=2%>Rule</td>
    <td width=50%>Close files when they are no longer needed</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO44</td>
    <td width=2%>Rule</td>
    <td width=50%>Only use values for fsetpos() that are returned from fgetpos()</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO45</td>
    <td width=2%>Rule</td>
    <td width=50%>Avoid TOCTOU race conditions while accessing files</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO46</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not access a closed file</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FIO47</td>
    <td width=2%>Rule</td>
    <td width=50%>Use valid format strings</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP02</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Avoid using floating-point numbers when precise computation is needed</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP06</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Convert integers to floating point for floating point operations</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not use floating-point variables as loop counters</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP32</td>
    <td width=2%>Rule</td>
    <td width=50%>Prevent or detect domain and range errors in math functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP34</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure that floating-point conversions are within range of the new type</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP36</td>
    <td width=2%>Rule</td>
    <td width=50%>Preserve precision when converting integral values to floating-point type</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>FLP37</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not use object representations to compare floating-point values</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT02</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Understand integer conversion rules</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-1251</td>
    <td width=95%>Suffixed integer constant causes implicit conversion of other operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-1290</td>
    <td width=95%>An integer constant of 'essentially signed' type is being converted to unsigned type on assignment.</td>
  </tr>
  <tr>
    <td width=10%>qac-2100</td>
    <td width=95%>Integral promotion : unsigned char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-2101</td>
    <td width=95%>Integral promotion : unsigned short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-2105</td>
    <td width=95%>Integral promotion : signed short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-2109</td>
    <td width=95%>Integral promotion : _Bool promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-4471</td>
    <td width=95%>A non-constant expression of 'essentially unsigned' type (%1s) is being passed to a function parameter of wider unsigned type, '%2s'.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>INT04</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Enforce limits on integer values originating from tainted sources</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT05</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not use input functions to convert character data if they cannot handle all possible inputs</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT07</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use only explicitly signed or unsigned char type for numeric values</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT08</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Verify that all integer values are in range</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT09</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Ensure enumeration constants map to unique values</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT10</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not assume a positive remainder when using the % operator</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT12</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not make assumptions about the type of a plain int bit-field when used in an expression</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT13</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use bitwise operators only on unsigned operands</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-4544</td>
    <td width=95%>A non-negative constant expression of 'essentially signed' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>INT16</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not make assumptions about representation of signed integers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT18</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Evaluate integer expressions in a larger size before comparing or assigning to that size</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT30</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure that unsigned integer operations do not wrap</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3383</td>
    <td width=95%>Cannot identify wraparound guard for unsigned arithmetic expression.</td>
  </tr>
  <tr>
    <td width=10%>qac-3384</td>
    <td width=95%>Cannot identify wraparound guard for dependent unsigned arithmetic expression.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>INT31</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure that integer conversions do not result in lost or misinterpreted data</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT32</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure that operations on signed integers do not result in overflow</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT33</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure that division and remainder operations do not result in divide-by-zero errors</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT34</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT35</td>
    <td width=2%>Rule</td>
    <td width=50%>Use correct integer precisions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>INT36</td>
    <td width=2%>Rule</td>
    <td width=50%>Converting a pointer to integer or integer to pointer</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0306</td>
    <td width=95%>[I] Cast between a pointer to object and an integral type.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>MEM02</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Immediately cast the result of a memory allocation function call into a pointer to the allocated type</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM03</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Clear sensitive information stored in reusable resources</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM05</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Avoid large stack allocations</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not access freed memory</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM31</td>
    <td width=2%>Rule</td>
    <td width=50%>Free dynamically allocated memory when no longer needed</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM33</td>
    <td width=2%>Rule</td>
    <td width=50%>Allocate and copy structures containing a flexible array member dynamically</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM34</td>
    <td width=2%>Rule</td>
    <td width=50%>Only free memory allocated dynamically</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM35</td>
    <td width=2%>Rule</td>
    <td width=50%>Allocate sufficient memory for an object</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MEM36</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not modify the alignment of objects by calling realloc()</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC01</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Strive for logical completeness</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-2000</td>
    <td width=95%>No 'else' clause exists for this 'if' statement.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>MSC04</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use comments consistently and in a readable fashion</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC07</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Detect and remove dead code</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-2881</td>
    <td width=95%>The code in this 'default' clause is unreachable.</td>
  </tr>
  <tr>
    <td width=10%>qac-2982</td>
    <td width=95%>This assignment is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=10%>qac-2983</td>
    <td width=95%>This assignment is redundant. The value of this object is never subsequently used.</td>
  </tr>
  <tr>
    <td width=10%>qac-2984</td>
    <td width=95%>This operation is redundant. The value of the result is always '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-2985</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the left-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-2986</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the right-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-3205</td>
    <td width=95%>The identifier '%1s' is not used and could be removed.</td>
  </tr>
  <tr>
    <td width=10%>qac-3210</td>
    <td width=95%>The global identifier '%1s' is declared here but is not used in this translation unit.</td>
  </tr>
  <tr>
    <td width=10%>rcma-1503</td>
    <td width=95%>The function '%1s' is defined but is not used within this project.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>MSC09</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Character encoding: Use subset of ASCII for safety</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC12</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Detect and remove code that has no effect or is never executed</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC13</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Detect and remove unused values</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-2982</td>
    <td width=95%>This assignment is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=10%>qac-2983</td>
    <td width=95%>This assignment is redundant. The value of this object is never subsequently used.</td>
  </tr>
  <tr>
    <td width=10%>qac-2984</td>
    <td width=95%>This operation is redundant. The value of the result is always '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-2985</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the left-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-2986</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the right-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-3205</td>
    <td width=95%>The identifier '%1s' is not used and could be removed.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>MSC14</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not introduce unnecessary platform dependencies</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC15</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not depend on undefined behavior</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC17</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Finish every set of statements associated with a case label with a break statement</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC20</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not use a switch statement to transfer control into a complex block</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not use the rand() function for generating pseudorandom numbers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC32</td>
    <td width=2%>Rule</td>
    <td width=50%>Properly seed pseudorandom number generators</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC33</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not pass invalid data to the asctime() function</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC37</td>
    <td width=2%>Rule</td>
    <td width=50%>Ensure that control never reaches the end of a non-void function</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC38</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not treat a predefined identifier as an object if it might only be implemented as a macro</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC39</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not call va_arg() on a va_list that has an indeterminate value</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC40</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not violate constraints</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>MSC41</td>
    <td width=2%>Rule</td>
    <td width=50%>Never hard code sensitive information</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS30</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Use the readlink() function properly</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS33</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not use vfork()</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS34</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not call putenv() with a pointer to an automatic variable as the argument</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS35</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Avoid race conditions while checking for the existence of a symbolic link</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS36</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Observe correct revocation order while relinquishing privileges</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS37</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Ensure that privilege relinquishment is successful</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS38</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Beware of race conditions when using fork and file descriptors</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS39</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Use the correct byte ordering when transferring data between systems</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS44</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not use signals to terminate threads</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS47</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not use threads that can be canceled asynchronously</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS48</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not unlock or destroy another POSIX thread's mutex</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS49</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>When data must be accessed by multiple threads, provide a mutex and guarantee no adjacent data is also accessed</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS50</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Declare objects shared between POSIX threads with appropriate storage durations</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS51</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Avoid deadlock with POSIX threads by locking in predefined order</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS52</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not perform operations that can block while holding a POSIX lock</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS53</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Do not use more than one mutex for concurrent waiting operations on a condition variable</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>POS54</td>
    <td width=2%>Rule_Optional</td>
    <td width=50%>Detect and handle POSIX library errors</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE00</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Prefer inline or static functions to function-like macros</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE01</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use parentheses within macros around parameter names</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE02</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Macro replacement lists should be parenthesized</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE03</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Prefer typedefs to defines for encoding non-pointer types</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE04</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not reuse a standard header file name</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE05</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Understand macro replacement when concatenating tokens or performing stringification</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE06</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Enclose header files in an inclusion guard</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE07</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Avoid using repeated question marks</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE08</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Guarantee that header file names are unique</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE09</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not replace secure functions with deprecated or obsolescent functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE10</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Wrap multi-statement macros in a do-while loop</td>
    <td class="docCellGreen">Compliant with deviations:<br>
<center><table width=95%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3412</td>
    <td width=95%>Macro defines an unrecognized code-fragment.</td>
  </tr>
</table></center>
</td>
  </tr>
  <tr>
    <td width=5%>PRE11</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not conclude macro definitions with a semicolon</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE12</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not define unsafe macros</td>
    <td class="docCellOrange">Disapplied</td>
  </tr>
  <tr>
    <td width=5%>PRE30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not create a universal character name through concatenation</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE31</td>
    <td width=2%>Rule</td>
    <td width=50%>Avoid side effects in arguments to unsafe macros</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>PRE32</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not use preprocessor directives in invocations of function-like macros</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>SIG00</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Mask signals handled by noninterruptible signal handlers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>SIG01</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Understand implementation-specific details regarding signal handler persistence</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>SIG30</td>
    <td width=2%>Rule</td>
    <td width=50%>Call only asynchronous-safe functions within signal handlers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>SIG31</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not access shared objects in signal handlers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>SIG34</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not call signal() from within interruptible signal handlers</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>SIG35</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not return from a computational exception signal handler</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR04</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use plain char for characters in the basic character set</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR05</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use pointers to const when referring to string literals</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR06</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not assume that strtok() leaves the parse string unchanged</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR07</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Use the bounds-checking interfaces for string manipulation</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR09</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Don't assume numeric values for expressions with type plain character</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR10</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not concatenate different type of string literals</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR11</td>
    <td width=2%>Recommendation</td>
    <td width=50%>Do not specify the bound of a character array initialized with a string literal</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR30</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not attempt to modify string literals</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR31</td>
    <td width=2%>Rule</td>
    <td width=50%>Guarantee that storage for strings has sufficient space for character data and the null terminator</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR32</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not pass a non-null-terminated character sequence to a library function that expects a string</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR34</td>
    <td width=2%>Rule</td>
    <td width=50%>Cast characters to unsigned char before converting to larger integer sizes</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR37</td>
    <td width=2%>Rule</td>
    <td width=50%>Arguments to character-handling functions must be representable as an unsigned char</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
  <tr>
    <td width=5%>STR38</td>
    <td width=2%>Rule</td>
    <td width=50%>Do not confuse narrow and wide character strings and functions</td>
    <td class="docCellGreen">Compliant</td>
  </tr>
</table></center>
</div>
<div class="Permits">
<div class="sec"><h2><a name="Permits">Deviation Permits</a></h2></div>
This section targets to provide an overview of Deviation Permits.<br>
All the rules corresponding to the deviation permits are disabled inside Helix QAC and will not cause any violation or deviation in the Deviation records section below.
<br>
<br>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Guideline</th><th>Category</th><th>Description</th><th>Ratio</th><th>Sub Rules</th><th>Characteristics</th><th>Reason</th></tr>
  <tr>
    <td width=4%>DCL00</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Const-qualify immutable objects</td>
    <td width=2%>2/5</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3204</td>
    <td width=95%>The variable '%s' is only set once and so it could be declared with the 'const' qualifier.</td>
  </tr>
  <tr>
    <td width=10%>qac-3227</td>
    <td width=95%>The parameter '%s' is never modified and so it could be declared with the 'const' qualifier.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>DCL05</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Use typedefs of non-pointer types only</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>certccm-5004</td>
    <td width=95%>This typedef is applied to a pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>DCL06</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Use meaningful symbolic constants to represent literal values</td>
    <td width=2%>2/6</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3120</td>
    <td width=95%>Hard-coded 'magic' integer constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-3132</td>
    <td width=95%>Hard coded 'magic' number, '%1s', used to define the size of an array.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>DCL07</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Include the appropriate type information in function declarators</td>
    <td width=2%>1/6</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3450</td>
    <td width=95%>Function '%s', with internal linkage, is being defined without a previous declaration.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>DCL19</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Minimize the scope of variables and functions</td>
    <td width=2%>3/6</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3210</td>
    <td width=95%>The global identifier '%1s' is declared here but is not used in this translation unit.</td>
  </tr>
  <tr>
    <td width=10%>rcma-1505</td>
    <td width=95%>The function '%1s' is only referenced in the translation unit where it is defined.</td>
  </tr>
  <tr>
    <td width=10%>rcma-1532</td>
    <td width=95%>The function '%1s' is only referenced in one translation unit - but not the one in which it is defined.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Modularity</td>
    <td>RFAL Library contains functions which may be used by the user but are not called in the project used for checking compliance.<br></td>
  <tr>
    <td width=4%>DCL23</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Guarantee that mutually visible identifiers are unique</td>
    <td width=2%>2/8</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0776</td>
    <td width=95%>[L] External identifier matches other external identifier(s) (e.g. '%1s') in first 6 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=10%>qac-0778</td>
    <td width=95%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 31 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Analysability</td>
    <td>Project is following C99 which defines 63 signficant characters.<br></td>
  <tr>
    <td width=4%>DCL40</td>
    <td width=4%>Rule</td>
    <td width=20%>Do not create incompatible declarations of the same function or object</td>
    <td width=2%>2/5</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0776</td>
    <td width=95%>[L] External identifier matches other external identifier(s) (e.g. '%1s') in first 6 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
  <tr>
    <td width=10%>qac-0778</td>
    <td width=95%>[L] Identifier matches other identifier(s) (e.g. '%1s') in first 31 characters - program does not conform strictly to ISO:C90.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Analysability</td>
    <td>Project is following C99 which defines 63 signficant characters.<br></td>
  <tr>
    <td width=4%>ERR33</td>
    <td width=4%>Rule</td>
    <td width=20%>Detect and handle standard library errors</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3200</td>
    <td width=95%>'%s' returns a value which is not being used.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Analysability</td>
    <td>Treating the return codes of functions in all places without exception handling would make the code hard to read and maintain. Error checking has been reduced to the places where needed.<br></td>
  <tr>
    <td width=4%>EXP07</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Do not diminish the benefits of constants by assuming their values in expressions</td>
    <td width=2%>2/6</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3120</td>
    <td width=95%>Hard-coded 'magic' integer constant, '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-3132</td>
    <td width=95%>Hard coded 'magic' number, '%1s', used to define the size of an array.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>EXP11</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Do not make assumptions regarding the layout of structures with bit-fields</td>
    <td width=2%>1/2</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0751</td>
    <td width=95%>Casting to char pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td>
<br>0751-See EXP39
<br>
</td>
  <tr>
    <td width=4%>EXP12</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Do not ignore values returned by functions</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3200</td>
    <td width=95%>'%s' returns a value which is not being used.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Analysability</td>
    <td>See ERR33.<br></td>
  <tr>
    <td width=4%>EXP15</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Do not place a semicolon on the same line as an if, for, or while statement</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3109</td>
    <td width=95%>Null statement follows other code on the same line.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>EXP39</td>
    <td width=4%>Rule</td>
    <td width=20%>Do not access a variable through a pointer of an incompatible type</td>
    <td width=2%>1/3</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0751</td>
    <td width=95%>Casting to char pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / NonMatch</td>
    <td>EXP39 states "Modifying a variable through a pointer of an incompatible type (other than unsigned char)". Therefore 0751 is disabled.<br></td>
  <tr>
    <td width=4%>EXP45</td>
    <td width=4%>Rule</td>
    <td width=20%>Do not perform assignments in selection statements</td>
    <td width=2%>1/4</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3416</td>
    <td width=95%>Logical operation performed on expression with persistent side effects.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / NonMatch</td>
    <td>EXP45 is only targeting assignment inside expressions. 3416 is a considered an invalid mapping.<br></td>
  <tr>
    <td width=4%>INT02</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Understand integer conversion rules</td>
    <td width=2%>7/119</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-1251</td>
    <td width=95%>Suffixed integer constant causes implicit conversion of other operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-1290</td>
    <td width=95%>An integer constant of 'essentially signed' type is being converted to unsigned type on assignment.</td>
  </tr>
  <tr>
    <td width=10%>qac-2100</td>
    <td width=95%>Integral promotion : unsigned char promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-2101</td>
    <td width=95%>Integral promotion : unsigned short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-2105</td>
    <td width=95%>Integral promotion : signed short promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-2109</td>
    <td width=95%>Integral promotion : _Bool promoted to signed int.</td>
  </tr>
  <tr>
    <td width=10%>qac-4471</td>
    <td width=95%>A non-constant expression of 'essentially unsigned' type (%1s) is being passed to a function parameter of wider unsigned type, '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td>Code complies to MISRA restrictions for types and casts (Dir-1.1, Rule-1.1 ,10.1-10.8, 11.1-8) with documented exceptions. No further restrictions employed.<br></td>
  <tr>
    <td width=4%>INT13</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Use bitwise operators only on unsigned operands</td>
    <td width=2%>1/5</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-4544</td>
    <td width=95%>A non-negative constant expression of 'essentially signed' type (%1s) is being used as the right-hand operand of this shift operator (%2s).</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>INT30</td>
    <td width=4%>Rule</td>
    <td width=20%>Ensure that unsigned integer operations do not wrap</td>
    <td width=2%>2/8</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3383</td>
    <td width=95%>Cannot identify wraparound guard for unsigned arithmetic expression.</td>
  </tr>
  <tr>
    <td width=10%>qac-3384</td>
    <td width=95%>Cannot identify wraparound guard for dependent unsigned arithmetic expression.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Testability</td>
    <td>No apparent nor definite wraparound happening, checks for wraparound are omitted.<br></td>
  <tr>
    <td width=4%>INT36</td>
    <td width=4%>Rule</td>
    <td width=20%>Converting a pointer to integer or integer to pointer</td>
    <td width=2%>1/9</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-0306</td>
    <td width=95%>[I] Cast between a pointer to object and an integral type.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Modifiability</td>
    <td>Using STM32 HAL already creates many violations. Also needed to do pointer arithmetic, calculating offsets inside a buffer.<br></td>
  <tr>
    <td width=4%>MSC01</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Strive for logical completeness</td>
    <td width=2%>1/3</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-2000</td>
    <td width=95%>No 'else' clause exists for this 'if' statement.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>MSC07</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Detect and remove dead code</td>
    <td width=2%>9/28</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-2881</td>
    <td width=95%>The code in this 'default' clause is unreachable.</td>
  </tr>
  <tr>
    <td width=10%>qac-2982</td>
    <td width=95%>This assignment is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=10%>qac-2983</td>
    <td width=95%>This assignment is redundant. The value of this object is never subsequently used.</td>
  </tr>
  <tr>
    <td width=10%>qac-2984</td>
    <td width=95%>This operation is redundant. The value of the result is always '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-2985</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the left-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-2986</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the right-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-3205</td>
    <td width=95%>The identifier '%1s' is not used and could be removed.</td>
  </tr>
  <tr>
    <td width=10%>qac-3210</td>
    <td width=95%>The global identifier '%1s' is declared here but is not used in this translation unit.</td>
  </tr>
  <tr>
    <td width=10%>rcma-1503</td>
    <td width=95%>The function '%1s' is defined but is not used within this project.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Usability / User error protection</td>
    <td>All the violations were checked and fixing the violation would deteriorate robustness: Removing checks which are unnecessary at the given position, removing trailing iterator increment, etc. Also suppressed for MISRA Rule-2.2<br></td>
  <tr>
    <td width=4%>MSC13</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Detect and remove unused values</td>
    <td width=2%>6/14</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-2982</td>
    <td width=95%>This assignment is redundant. The value of this object is never used before being modified.</td>
  </tr>
  <tr>
    <td width=10%>qac-2983</td>
    <td width=95%>This assignment is redundant. The value of this object is never subsequently used.</td>
  </tr>
  <tr>
    <td width=10%>qac-2984</td>
    <td width=95%>This operation is redundant. The value of the result is always '%1s'.</td>
  </tr>
  <tr>
    <td width=10%>qac-2985</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the left-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-2986</td>
    <td width=95%>This operation is redundant. The value of the result is always that of the right-hand operand.</td>
  </tr>
  <tr>
    <td width=10%>qac-3205</td>
    <td width=95%>The identifier '%1s' is not used and could be removed.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Usability / User error protection</td>
    <td>All the violations were checked and fixing the violation would deteriorate robustness: Removing checks which are unnecessary at the given position, removing trailing iterator increment, etc. Also suppressed for MISRA Rule-2.2<br></td>
  <tr>
    <td width=4%>POS54</td>
    <td width=4%>Rule_Optional</td>
    <td width=20%>Detect and handle POSIX library errors</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3200</td>
    <td width=95%>'%s' returns a value which is not being used.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Maintainability / Analysability</td>
    <td>Only memcpy, memmove and memset are used which don't return errors. The more general 3200(already suppressed as part of ERR33) would only report other violations.<br></td>
  <tr>
    <td width=4%>PRE00</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Prefer inline or static functions to function-like macros</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3453</td>
    <td width=95%>A function could probably be used instead of this function-like macro.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Performance / Resource utilization</td>
    <td>Suppressed due to code optimization and efficiency. Compare MISRA Dir-4.9.<br></td>
  <tr>
    <td width=4%>PRE08</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Guarantee that header file names are unique</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>certccm-5002</td>
    <td width=95%>The header '%s' file name shadows a previously included header.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>PRE10</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Wrap multi-statement macros in a do-while loop</td>
    <td width=2%>1/2</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3412</td>
    <td width=95%>Macro defines an unrecognized code-fragment.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>PRE11</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Do not conclude macro definitions with a semicolon</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3412</td>
    <td width=95%>Macro defines an unrecognized code-fragment.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  <tr>
    <td width=4%>PRE12</td>
    <td width=4%>Recommendation</td>
    <td width=20%>Do not define unsafe macros</td>
    <td width=2%>1/1 (all)</td>
    <td width=30%><center><table width=100%>
  <tr><th>Qac</th><th>Description</th></tr>
  <tr>
    <td width=10%>qac-3456</td>
    <td width=95%>Parameter '%1s' will be evaluated more than once when this macro is used.</td>
  </tr>
</table></center>
</td>
    <td width=10%>Other / AcceptedRecoBreach</td>
    <td></td>
  </tr>
</table></center>
</div>
<div class="Records">
<div class="sec"><h2><a name="Records">Deviation Records</a></h2></div>
This section targets to provide an overview of Deviation Records.
<br>
<br>
<div class="files">
<div class="sec"><h3><a name="SuppressionsByFile">1. Suppressions by File</a></h3></div>
<h4>File: rfal/include/rfal_utils.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>147</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>certccm-5003</td>
    <td width=95%>The obsolete function '%s' will be used as a result of this macro expansion</td>
  </tr>
</table></center>
</td>
    <td width=45%>CERT C 9 - string.h from Cosmic only provides functions with low qualified parameters</td>
    </tr>
</table></center>
<h4>File: rfal/source/rfal_iso15693_2.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>524</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2911</td>
    <td width=95%>Definite: Wraparound in unsigned arithmetic operation.</td>
  </tr>
</table></center>
</td>
    <td width=45%>CERT INT30 - Intentional underflow, part of the coding</td>
    </tr>
</table></center>
<h4>File: rfal/source/rfal_isoDep.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>1027</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>796</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2731</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0310</td>
    <td width=95%>Casting to different object pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 11.3 - Intentional safe cast to avoiding large buffer duplication</td>
    </tr>
  <tr>
    <td width=4%>2794</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2279-2280</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0310</td>
    <td width=95%>Casting to different object pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 11.3 - Intentional safe cast to avoiding buffer duplication</td>
    </tr>
  <tr>
    <td width=4%>1360</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
</table></center>
<h4>File: rfal/source/rfal_nfc.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>1924</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0310</td>
    <td width=95%>Casting to different object pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 11.3 - Intentional safe cast to avoiding large buffer duplication</td>
    </tr>
  <tr>
    <td width=4%>205</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2880</td>
    <td width=95%>This code is unreachable.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 2.1 - Unreachable code due to configuration option being set/unset</td>
    </tr>
  <tr>
    <td width=4%>2149</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0310</td>
    <td width=95%>Casting to different object pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 11.3 - Intentional safe cast to avoiding large buffer duplication</td>
    </tr>
</table></center>
<h4>File: rfal/source/rfal_nfcDep.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>1681</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2689</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>1609</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2630</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0310</td>
    <td width=95%>Casting to different object pointer type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 11.3 - Intentional safe cast to avoiding large buffer duplication</td>
    </tr>
</table></center>
<h4>File: rfal/source/rfal_nfca.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>739</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>314</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
</table></center>
<h4>File: rfal/source/rfal_t4t.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>136</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2880</td>
    <td width=95%>This code is unreachable.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 2.1 - Unreachable code due to configuration option being set/unset</td>
    </tr>
  <tr>
    <td width=4%>127</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2880</td>
    <td width=95%>This code is unreachable.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 2.1 - Unreachable code due to configuration option being set/unset</td>
    </tr>
</table></center>
<h4>File: rfal/source/st25r3916/rfal_analogConfigTbl.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>404-406</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3674</td>
    <td width=95%>Array size defined implicitly by the number of initializers.</td>
  </tr>
</table></center>
</td>
    <td width=45%>CERT ARR02 - Flexible array will be used with sizeof, on adding elements error-prone manual update of size would be required</td>
    </tr>
</table></center>
<h4>File: rfal/source/st25r3916/rfal_dpoTbl.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>53-55</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3674</td>
    <td width=95%>Array size defined implicitly by the number of initializers.</td>
  </tr>
</table></center>
</td>
    <td width=45%>CERT ARR02 - Flexible array will be used with sizeof, on adding elements error-prone manual update of size would be required</td>
    </tr>
</table></center>
<h4>File: rfal/source/st25r3916/rfal_rfst25r3916.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Lines</th><th>Count</th><th>Suppressed Qacs</th><th>Comment</th></tr>
  </tr>
  <tr>
    <td width=4%>2059</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>3637</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2028</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2402</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2043</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2477</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2131</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2672</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2183</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2261</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>2565</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2003</td>
    <td width=95%>The preceding 'switch' clause is not empty and does not end with a 'jump' statement. Execution will fall through.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 16.3 - Intentional fall through</td>
    </tr>
  <tr>
    <td width=4%>1055</td>
    <td align=center width=4%>1</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2880</td>
    <td width=95%>This code is unreachable.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 2.1 - Inconsistently marked as unreachable code</td>
    </tr>
</table></center>
</div>
<div class="files">
<div class="sec"><h3><a name="SuppressionsByGroup">2. Suppressions by Group</a></h3></div>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>File</th><th>Recommendation</th><th>Rule</th><th>Total</th></tr>
  <tr>
    <td>rfal/source/st25r3916/rfal_rfst25r3916.c</td>
    <td align=center>12</td>
    <td align=center>0</td>
    <td align=center>12</td>
  </tr>
  <tr>
    <td>rfal/source/st25r3916/rfal_dpoTbl.h</td>
    <td align=center>1</td>
    <td align=center>0</td>
    <td align=center>1</td>
  </tr>
  <tr>
    <td>rfal/source/rfal_t4t.c</td>
    <td align=center>2</td>
    <td align=center>0</td>
    <td align=center>2</td>
  </tr>
  <tr>
    <td>rfal/source/st25r3916/rfal_analogConfigTbl.h</td>
    <td align=center>1</td>
    <td align=center>0</td>
    <td align=center>1</td>
  </tr>
  <tr>
    <td>rfal/source/rfal_nfcDep.c</td>
    <td align=center>4</td>
    <td align=center>1</td>
    <td align=center>5</td>
  </tr>
  <tr>
    <td>rfal/source/rfal_nfca.c</td>
    <td align=center>2</td>
    <td align=center>0</td>
    <td align=center>2</td>
  </tr>
  <tr>
    <td>rfal/source/rfal_isoDep.c</td>
    <td align=center>6</td>
    <td align=center>2</td>
    <td align=center>8</td>
  </tr>
  <tr>
    <td>rfal/source/rfal_iso15693_2.c</td>
    <td align=center>1</td>
    <td align=center>1</td>
    <td align=center>2</td>
  </tr>
  <tr>
    <td>rfal/source/rfal_nfc.c</td>
    <td align=center>3</td>
    <td align=center>2</td>
    <td align=center>5</td>
  </tr>
  <tr>
    <td>rfal/include/rfal_utils.h</td>
    <td align=center>1</td>
    <td align=center>0</td>
    <td align=center>1</td>
  </tr>
  <tr>
    <td><b>Total</b></td>
    <td align=center><b>33</b></td>
    <td align=center><b>6</b></td>
    <td align=center><b>39</b></td>
  </tr>
</table></center>

<br>
<br>
<b>Note: </b>Qac messages can be mapped by more than one rule or group. In such case it will be counted several times.
<br>
</div>
<div class="files">
<div class="sec"><h3><a name="RedundantSuppressions">3. Redundant Suppressions</a></h3></div>
<div class="sec"><h4><a name="DuplicatedSuppressions">o Duplicated Suppressions</a></h4></div>
There are no duplicated suppressions.
<div class="sec"><h4><a name="UnusedSuppressions">o Unused Suppressions</a></h4></div>
<h4>File: common/firmware/STM/utils/Inc/utils.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>79</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0431</td>
    <td width=95%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 1.1 - string.h from Cosmic only provides functions with low qualified parameters</td>
</tr>
  <tr>
    <td width=4%>81</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0431</td>
    <td width=95%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 1.1 - string.h from Cosmic only provides functions with low qualified parameters</td>
</tr>
</table></center>
<h4>File: rfal/include/rfal_utils.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>148</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0431</td>
    <td width=95%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 1.1 - string.h from Cosmic only provides functions with low qualified parameters</td>
</tr>
  <tr>
    <td width=4%>150</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0431</td>
    <td width=95%>[C] Function argument points to a more heavily qualified type.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 1.1 - string.h from Cosmic only provides functions with low qualified parameters</td>
</tr>
</table></center>
<h4>File: rfal/source/rfal_isoDep.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>2564</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalBitRate and above clamping of maxTxBR guarantee no invalid enum values to be created</td>
</tr>
  <tr>
    <td width=4%>2557</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalBitRate and above clamping of maxTxBR guarantee no invalid enum values to be created</td>
</tr>
  <tr>
    <td width=4%>2185</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalIsoDepFSxI is guaranteed whithin 4bit range</td>
</tr>
  <tr>
    <td width=4%>2653</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalBitRate and range of loop variable guarantee no invalid enum values to be created</td>
</tr>
  <tr>
    <td width=4%>2640</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalBitRate and range of loop variable guarantee no invalid enum values to be created</td>
</tr>
  <tr>
    <td width=4%>416</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0750</td>
    <td width=95%>A union type specifier has been defined.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 19.2 - Members of the union will not be used concurrently, only one frame at a time</td>
</tr>
  <tr>
    <td width=4%>1400</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalBitRate and above masks guarantee no invalid enum values to be created</td>
</tr>
</table></center>
<h4>File: rfal/source/rfal_nfc.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>77</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0750</td>
    <td width=95%>A union type specifier has been defined.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 19.2 - Members of the union will not be used concurrently, only one interface at a time</td>
</tr>
  <tr>
    <td width=4%>219</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-2880</td>
    <td width=95%>This code is unreachable.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 2.1 - Unreachable code due to configuration option being set/unset</td>
</tr>
</table></center>
<h4>File: rfal/source/rfal_nfcDep.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>1930</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of enum rfalBitRate and definition of rfalNfcDepBRS2DSI guarantee no invalid enum values to be created</td>
</tr>
</table></center>
<h4>File: rfal/source/rfal_nfca.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>746</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Guaranteed that no invalid enum values are created: see guard_eq_RFAL_NFCA_T2T, ....</td>
</tr>
</table></center>
<h4>File: rfal/source/rfal_nfcb.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>545</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Layout of rfalNfcbSlots and the limited loop guarantee that no invalid enum values are created.</td>
</tr>
</table></center>
<h4>File: rfal/source/st25r3916/rfal_analogConfigTbl.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>717</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3406</td>
    <td width=95%>Object/function '%s', with external linkage, has been defined in a header file.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 8.9 - Externally generated table included by the library</td>
</tr>
  <tr>
    <td width=4%>405</td>
    <td><center><table width=98%>
</table></center>
</td>
    <td width=45%>MISRA 8.9 - Externally generated table included by the library</td>
</tr>
  <tr>
    <td width=4%>716</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3674</td>
    <td width=95%>Array size defined implicitly by the number of initializers.</td>
  </tr>
</table></center>
</td>
    <td width=45%>CERT ARR02 - Flexible array will be used with sizeof, on adding elements error-prone manual update of size would be required</td>
</tr>
  <tr>
    <td width=4%>405</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3406</td>
    <td width=95%>Object/function '%s', with external linkage, has been defined in a header file.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 8.6 - Externally generated table included by the library</td>
</tr>
  <tr>
    <td width=4%>717</td>
    <td><center><table width=98%>
</table></center>
</td>
    <td width=45%>MISRA 8.6 - Externally generated table included by the library</td>
</tr>
</table></center>
<h4>File: rfal/source/st25r3916/rfal_dpoTbl.h</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>65</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3674</td>
    <td width=95%>Array size defined implicitly by the number of initializers.</td>
  </tr>
</table></center>
</td>
    <td width=45%>CERT ARR02 - Flexible array will be used with sizeof, on adding elements error-prone manual update of size would be required</td>
</tr>
  <tr>
    <td width=4%>66</td>
    <td><center><table width=98%>
</table></center>
</td>
    <td width=45%>MISRA 8.9 - Externally generated table included by the library</td>
</tr>
  <tr>
    <td width=4%>66</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3406</td>
    <td width=95%>Object/function '%s', with external linkage, has been defined in a header file.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 8.6 - Externally generated table included by the library</td>
</tr>
  <tr>
    <td width=4%>54</td>
    <td><center><table width=98%>
</table></center>
</td>
    <td width=45%>MISRA 8.9 - Externally generated table included by the library</td>
</tr>
  <tr>
    <td width=4%>54</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-3406</td>
    <td width=95%>Object/function '%s', with external linkage, has been defined in a header file.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 8.6 - Externally generated table included by the library</td>
</tr>
</table></center>
<h4>File: rfal/source/st25r3916/rfal_rfst25r3916.c</h4>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Line</th><th>Unused Qacs</th><th>Comment</th></tr>
  <tr>
    <td width=4%>3657</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Guaranteed that no invalid enum values may be created. See also equalityGuard_RFAL_BR_106 ff.</td>
</tr>
  <tr>
    <td width=4%>3387</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0759</td>
    <td width=95%>An object of union type has been defined.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 19.2 - Allocating Union where members are of the same type, just different names.  Thus no problem can occur.</td>
</tr>
  <tr>
    <td width=4%>280</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-0750</td>
    <td width=95%>A union type specifier has been defined.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 19.2 - Both members are of the same type, just different names.  Thus no problem can occur.</td>
</tr>
  <tr>
    <td width=4%>1639</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>5209</td>
    <td width=95%>No description</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 4.9 - External function (sqrt()) requires double</td>
</tr>
  <tr>
    <td width=4%>3890</td>
    <td><center><table width=98%>
  <tr>
    <td width=10%>qac-4342</td>
    <td width=95%>An expression of 'essentially unsigned' type (%1s) is being cast to enum type '%2s'.</td>
  </tr>
</table></center>
</td>
    <td width=45%>MISRA 10.5 - Guaranteed that no invalid enum values may be created. See also equalityGuard_RFAL_BR_106 ff.</td>
</tr>
</table></center>
</div>
<div class="files">
<div class="sec"><h3><a name="ContinuousSuppressionsByFile">4. Continuous Suppressions by File</a></h3></div>
There are no continuous suppressions by file.
</div>
<div class="files">
<div class="sec"><h3><a name="FileStatus">5. File Status</a></h3></div>
Active Diagnostics refers to diagnostics that are not suppressed (note: no suppressed diagnostics have been taken into account for the calculation of information in this document).
<br>
<br>
<center><table class="docTable" width=98%>
  <colgroup span="10" class="columns"></colgroup>
  <tr><th>Files</th><th>Active Diagnostics</th><th>Violated Rules</th><th>Violation Count</th><th>Compliance Index</th></tr>
  <tr>    <td align=left>rfal/include/rfal_analogConfig.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_cd.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_chip.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_dpo.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_isoDep.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_nfc.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_nfcDep.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_nfca.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_nfcb.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_nfcf.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_nfcv.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_rf.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_st25tb.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_st25xv.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_t1t.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_t2t.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_t4t.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/include/rfal_utils.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_analogConfig.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_cd.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_cdHb.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_crc.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_crc.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_dpo.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_iso15693_2.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_iso15693_2.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_isoDep.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_nfc.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_nfcDep.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_nfca.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_nfcb.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_nfcf.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_nfcv.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_st25tb.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_st25xv.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_t1t.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_t2t.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/rfal_t4t.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/rfal_analogConfigTbl.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/rfal_dpoTbl.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/rfal_features.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/rfal_rfst25r3916.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_aat.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_aat.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_com.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_com.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_irq.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_irq.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_led.c</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td align=left>rfal/source/st25r3916/st25r3916_led.h</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>0</td>
    <td align=right>100.00</td>
  </tr>
  <tr>    <td><b>Total</b></td>
    <td align=right><b>0</b></td>
    <td align=right><b>0</b></td>
    <td align=right><b>0</b></td>
    <td align=right><b>100.00</b></td>
  </tr>
</table></center>

<br><br>
<b>Nota: Calculation of Compliance Index</b><br>
The Compliance Index is the percentage of groups which have no messages in them.<br>
For each file it is calculated as follows:<br>
<br>
( Ntotal - Nerror  ) / Ntotal  x 100<br>
<br>
Ntotal  is the total number of enforced rules (i.e. the number of rules that have at least one message mapped to it directly).<br>
Nerror  is the number of rules for which messages appear in that file.<br>
The File Compliance Index is the mean of all the individual file compliances.<br>

<br>
</div>
</div>
</div>
 </body>
</html>
